recursieve functie - de finishing touch

Status
Niet open voor verdere reacties.

Eibert

Gebruiker
Lid geworden
18 nov 2006
Berichten
72
Recursieve functie.

Een string bevat een willekeurig aantal enkele aanhalingstekens.
Bv ’Wie’was’waar
IK wil deze tekens laten voorafgaan door een backslash
\’Wie\’was\’waar

Ik probeer de volgende recursieve code:
Code:
$s=”’Wie’was’waar”;
$st=recur($s, “”);
Echo “$st<br>”;

Function recur($s, $retour)	{
	static $s2="";
	$ps=strpos($s, "'");
	if ($ps>-1)	{	                        //$ps heeft een waarde
		$s1=substr($s, 0,$ps)."\\'";
		$s2=substr ($s, ($ps+1));
		$retour=$retour.$s1;
		$ps=strpos($s2, $retour);
		$retour=recur($s2, $retour);	
	}
	return $retour;
}

Output is dan st=\'Wie\'was\' en het deel waar ontbreekt.
Hoe krijg ik dat er ook aan?
 
Laatst bewerkt:
Eh, als het enige doel is om elke ' te laten voorafgaan door een backslash, wat is er dan mis met een simpele string replace?

PHP:
$string = str_replace( "'", "\'", $string );

Of, als je bezig bent met het sanitizen van database informatie, om gewoon mysql_real_escape_string() te gebruiken?

Voordat ik je code door ga spitten, even kijken of het wel echt nodig is :p
 
De meest eenvoudige dingen weet je soms niet. String-replace was voor mij onbekend. Het lost het probleem helemaal op.
Bedankt.
 
PHP is enorm, voordat je op laag niveau gaat werken, vraag je dan even af "zouden meer mensen met dit probleem zitten?"

Als het antwoord "ja" is, is er waarschijnlijk al een functie voor ;)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan