str_replace vraagje..

Status
Niet open voor verdere reacties.

Matse

Gebruiker
Lid geworden
18 jul 2007
Berichten
42
Hoi :) ,

Ik ben bezig met een stukje script dat embed links van YouTube weer "herstelt"..
Het is namelijk zo dat ik de YouTube links m.b.v mysql_real_escape_string in de database zet.
Daardoor krijg ik dus een aantal backslashes in de embed link, en zal deze dus niet meer werken.
Ik heb nu de volgende code om de embed link uit te lezen uit de database en alle backslashes die zijn toegevoegd weer weg te halen.
Dit gaat allemaal goed, behalve waar ik de slashes bij het url in de embed code weg wil halen:

PHP:
$Rij = str_replace('value=\"'.$link.'\"></param>','value="'.$link.'"></param>', $Rij);

Ik denk dat het fout gaat, omdat ik geen variabel kan gebruiken in het "originele" stukje code?

Hier de volledige code:

PHP:
<?php
include ("connection.php");

$url = mysql_query("SELECT URL FROM youtubeitem WHERE ID=6");
$url2 = mysql_query("SELECT URL2 FROM youtubeitem WHERE ID=6");
$link = mysql_fetch_array($url2);
while($Rij = mysql_fetch_array($url)){

$Rij = str_replace('<object width=\"560\" height=\"340\">','<object width="213" height="180">', $Rij);
$Rij = str_replace('<object width=\"640\" height=\"385\">','<object width="213" height="180">', $Rij);
$Rij = str_replace('<object width=\"853\" height=\"505\">','<object width="213" height="180">', $Rij);
$Rij = str_replace('<object width=\"1280\" height=\"745\">','<object width="213" height="180">', $Rij);

$Rij = str_replace('<param name=\"movie\"','<param name="movie"', $Rij);

$Rij = str_replace('value=\"'.$link.'\"></param>','value="'.$link.'"></param>', $Rij);

$Rij = str_replace('<param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param>','<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>', $Rij);

$Rij = str_replace('<embed src=\"'.$link.'\"','<embed src="$link"', $Rij);

$Rij = str_replace('type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"1280\" height=\"745\"></embed></object>','type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="1280" height="745"></embed></object>', $Rij);

echo $Rij['URL'];

}
?>

Dit stuk code geeft nu als uitkomst:
HTML:
<object width="213" height="180"><param name="movie" value=\"http://www.youtube.com/v/LjhCEhWiKXk?fs=1&amp;hl=nl_NL&amp;rel=0\"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src=\"http://www.youtube.com/v/LjhCEhWiKXk?fs=1&amp;hl=nl_NL&amp;rel=0\" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="1280" height="745"></embed></object>

Zoals je ziet blijven de backslashes staan bij de links.
 
Laatst bewerkt:
Ahhh, wat stom van me zeg. :o
Ik kan inderdaad natuurlijk gewoon stripslashes gebruiken :P
dankje! :P
 
Eh...mysql_real_escape_string() laat geen slashes achter. Stripslashes() gebruik je alleen als je data al naar de *** is, wat bij jou dus het geval is. Op jouw server staat, schijnbaar, magic_quotes_gpc aan, waardoor de slashes er omheen worden gezet. Dit moet uitgezet worden. Sterker nog; dit had al jaren uit moeten staan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan