str_replace speciale tekens
Een kort vraagje.
Ik wil graag in een variabele het teken & vervangen omdat het veel problemen geeft in verdere scripts.
Alleen werkt dat niet! Het script lijkt te stoppen als ik dit doe:
$string = str_replace("&", "12en12", $string);
Wat doe ik verkeerd? Deze opties heb ik ook al geprobeerd:
$string = str_replace('&', "12en12", $string);
$string = str_replace('\&', "12en12", $string);
Maar helaas.
Iemand een suggestie?
Alvast bedankt voor je reactie!
Mvg,
Robert
Wat is trouwens de inhoud van $string?
En wat zit er in $string?
$string = str_replace(chr(38), "12en12", $string);
Erwin H op 04/01/2012 17:24:24:
In plaats van '&' kan je ook chr(38) gebruiken, dus de ASCII code. Dan wel zonder quotes:
$string = str_replace(chr(38), "12en12", $string);
$string = str_replace(chr(38), "12en12", $string);
Daar zal het niet aan liggen aangezien je "&" gewoon kan str_replace :)
De fout zal um liggen in $string dat het misschien een object is of iets dergelijks
Als de poster de error reporting aan zet op zijn script zal hij vast een foutmelding krijgen waar we wat meer mee kunnen ;)
Gewijzigd op 04/01/2012 17:32:49 door Jelle -
@Jelle, verkeerde volgende als je het aan mij vraagt. Zet eerst in de ini de error reporting aan en bepaal vervolgens welke errors er zichtbaar moeten worden.
Weet niet of dit kan .
Denk dat de code zo is:
$string = (inhoud)
$string = str_replace("&","12en12",$string);
Dit moet zijn
$stringinhoud =(inhoud)
$string = str_replace("&","12en12",$stringinhoud);
Het kan makkelijk zijn dat dit fout is wang ik zet echt nog in de basis van php.
Dat is niet relevant Bas, je kunt een waarde best overschrijven.
@Robert, omdat we niet weten of $string een string is (omdat je nog niet gereageerd hebt, wat natuurlijk helemaal zo erg niet is) kun je ook deze code eens proberen:
Hierdoor weet je zeker dat $string een string is, omdat we het typecasten naar een string.
Ook kun je dit doen:
Hierdoor kun je zien wat voor type $string is, mocht er iets anders dan string staan dan weet je dat je iets fout doet. Er kan natuurlijk geen Array in.
Wil je dit wel met een Array doen kom je op zoiets uit:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
array_map($string, function( $value ) {
return str_replace('&', '12en12', $value);
});
?>
array_map($string, function( $value ) {
return str_replace('&', '12en12', $value);
});
?>
Dit stukje code is onderdeel van een grotere website met veel php includes. Ik heb een testpagina gemaakt om de str_replace pagina te controleren. Met Ajax converteert hij meteen de invoer naar een andere waarde. Helaas ging het hier dan ook ergens mis, de invoer ging in een <input> en daar lag waarschijnlijk de fout al of verderop in het verzenden.
Excuses voor het ongemak. Ik had een kleiner scriptje moeten maken om alle tussenstappen uit te sluiten.
Wel weer van geleerd :-)
Note; Ik zie nu dat dit zelfde ook helemaal werkt met preg_replace dus het lag allemaal aan het slechte test-script... *fail*
Bedankt voor jullie reacties! Ik heb er zeker iets aan gehad!
[Van mij mag dit forumitem weer weg, andere gebruikers kunnen er denk ik weinig van leren...]
Robert Niland:
[Van mij mag dit forumitem weer weg, andere gebruikers kunnen er denk ik weinig van leren...]
Nee, andere kunnen er zeker wat van leren. Ik schrijf hier geen voorbeelden voor een array om vervolgens weggegooid te worden :)
Wel mooi dat je door krijgt hoe je moet debuggen. Altijd eerst kleine stukjes proberen, enz.
Gewijzigd op 04/01/2012 19:14:44 door Wouter J
Bedankt voor de supersnelle reacties in ieder geval!
Oh wist niet dat je waarde kon overschrijven (bedankt weer wat geleerd).
Het maakt geen reet uit in welke volgorde je de twee regels zet als ze maar alle bij gezet worden ;)
Jelle, let een beetje op je woorden.