Ik gebruik zo'n parser en dan staat er bijv dit:

<?php
// Love
$bericht = str_replace ("(L)","<img src=\"img/ubbc/love.gif\" width=\"15\" height=\"15\" border=\"0\">",$bericht);
$bericht = str_replace ("[love]","<img src=\"img/ubbc/love.gif\" width=\"15\" height=\"15\" border=\"0\">",$bericht);
?>

Dan doet hij het als je direct echoot zechmaar
dus na al dat gepars zegt echo $bericht;
In de sql database staat het volgende zo:

<img src=\"img/ubbc/love.gif\" width=\"15\" height=\"15\" border=\"0\">

dus nog steeds hetzelfde

Maarr dan
ga ik in m'n nieuwspagina alles echoen en maakt hij er dit van :S:

%5C%22img/ubbc/love.gif%5C%22

en dan zegt hij dit:

The requested URL /news/\"img/ubbc/love.gif\" was not found on this server.



het rare is dat als je het verwerkt heb en je echoot het dat hij het wel doet en bij de nieuwspag het niet :S
<?php
// Love
$bericht = str_replace ('(L)','<img src="img/ubbc/love.gif" width="15" height="15" border="0">',$bericht);
?>
En zo?
<?php
// Love
$bericht = preg_replace ('#(L)#is','<img src="img\/ubbc\/love.gif" width="15" height="15" border="0">',$bericht);
?>

ga het eens preg_replacen.. dat werkt altijd goed bij mij
Zodra je de gegevens uit de database haalt moet je nog even [php]stripslashes[/php]() erover heen halen. Dat verwijdert die extra slashes.

ps. Waar waarom pas je die regels niet toe nadat je de gegevens uit de database hebt gehaald. Dus dat in de database gewoon de berichten met (L) en [love] staan...
blanche.. niet nodig als je enkele quotes gebruikt
een deel is al opgelost
alleen nog dit probleem

die '\' moet vervangen worden door ' '
maar zodra ik dit doe:

$row['bericht'] = str_replace('\','',$row['bericht']);
gebeurt er dus dit:

<?php
$row['bericht'] = str_replace('\','',$row['bericht']);
?>
Harmen schreef op 13.11.2006 17:00
blanche.. niet nodig als je enkele quotes gebruikt


Klopt, maar zoals ik hierboven ook al zeg, zou ik de html sowieso niet in de database zetten. Want wat nu als je bijvoorbeeld de berichten wilt wijzigen, moet je de html om gaan zetten naar ubb code en later weer terug.

@Paul: om 1 backslash te vervangen:
<?php
$row['bericht'] = str_replace('\\','',$row['bericht']);
?>
$row['bericht'] = str_replace('\','',$row['bericht']);

kan dat wel? dan denkt php toch dat je een enkele quote escaped? kijk maar naar het kleurtje
doe eens onderaan
$bericht = stripslashes($bericht);

Misschien is het dan opgelost
Het probleem is dat ik zo'n systeem gebruik dat kant en klaar is,,,

ik heb geen zin om alles te veranderen en zoiezo als ik dit heb:

<img src="img/ubbc/wink.gif" width="15" height="15" border="0">
dan als ik hem in de db doe doet ie dit:
<img src=\"img/ubbc/wink.gif\" width=\"15\" height=\"15\" border=\"0\">

maar goed ik heb nu het volgende:

$row['bericht'] = stripslashes($row['bericht']);

en nu werkt het :D
@Paul: om 1 backslash te vervangen:
<?php
$row['bericht'] = str_replace('\\','',$row['bericht']);
?> [/quote]

Dankje dan weet ik dat ook weer


Wat is trouwens het verschil tussen str_replace & preg_replace????

Reageren