Ik probeer rare tekens zoals éü te vervangen door eu in een url. Als ik gewoon een voorbeeld maak in een leeg bestand werkt het prima, maar zodra ik het in de rest van de code verwerk en het dus binnen in een foreach loop zet doet het niks. De count is gewoon 0, terwijl bij het losse script het 4 is wat klopt.

<?php
//dit werkt prima en geeft 4 als count.
$job_list['title'] = 'éçaëü';

$good_char = array("e","c","e","u");
$bad_char = array("é","ç","ë","ü");

$job_url = str_replace($bad_char, $good_char, $job_list['title'], $count);

echo $job_url;
echo '<br>';
echo $count;

//zelfde stuk alleen dan in een foreach loop, count = 0...

foreach ($result as $job_list) {

$bad_char = array("é","ç","ë","ü");
$good_char = array("e","c","e","u");

$job_url = str_replace($bad_char, $good_char, $job_list['title'], $count);
echo $count;

$jobs = '<li><a href="'.$job_url.'">'.$job.'</a></li>';
}


?>

De lijst met data die moet verschijnen door die foreach loop klopt verder gewoon, de url is er ook. Maar dus met éçaëü erin ipv ecaeu. Heeft iemand enige idee waardoor het kapot zou kunnen gaan, en de str_replace opeens 0 als resultaat geeft als het in de loop staat?
Hoe ziet je $result array eruit?
Kijk eerst eens naar [php]strtr[/php]().
En als iemand dan ï of ö gebruikt? Dat mag ook niet.
Kijk anders een naar dit script, hoe het daar opgelost is.
Als ik de result array print dan krijg ik het onderstaande te zien, maar als ik echo $job_list['title']; in de loop doe dan krijg ik wel gewoon alle titles te zien die ik moet zien?

Ik had nog nooit gehoord van strtr(), lijkt me wel een beter oplossing van wat ik nu doe :)

<?php
PDOStatement Object
(
[queryString] => de query....
)

?>

Reageren