Aller au contenu

str_replace dans un flux XML (RSS)


CyrilleB

Sujets conseillés

bonjour,

j'essaie de remplacer un mot par autre dans un flux XML que je parse.

les items se présentent sous la forme suivante (flux d'origine, que je parse):

Course du 18/08 - Arrivée: 3-1-4

je cherche tout simplement à traduire ce flux en anglais, il suffit donc de traduire "course" et "arrivée".

actuellement j'ai ça mais ça ne fonctionne pas:

$xml = simplexml_load_file($flux);

echo '<ul>'."\n";
$i = 0;

foreach ( $xml->channel->item as $value)

{
if ( $i < $nb_items ){
echo '<li>' . ($value->title) . "\n" . $value->pubDate . str_replace("course", "race", $value->description) . '</li>' . "\n";
}
$i++;
}
echo ''."\n";
?>

le flux s'affiche correctement mais le mot "course" du flux original n'est pas remplacé par "race".

2 questions:

1. quelqu'un aurait-il une idée pour faire ceci?

2. comment remplacer plusieurs (2 ou 3) mots?

merci!

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je c/c l'exemple de php.net :

// Génère : You should eat pizza, beer, and ice cream every day
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);

Lien vers le commentaire
Partager sur d’autres sites

Je dirais que ton problème original est que tu cherches à remplacer "Course" (avec une majuscule) alors que tu lui dis de remplacer "course" (sans). Non?

Jacques.

Lien vers le commentaire
Partager sur d’autres sites

Je galère souvent avec les "replace" car j'oublie de mettre les expressions dans des tableaux (array) ou au contraire je mets des tableaux alors qu'il n'en faut pas.

C'est le genre de bugs qui peut faire tourner un développeur non expert pendant de longues minutes.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...