Aller au contenu

str_replace dans un flux XML (RSS)


Sujets conseillés

Posté

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!

Posté

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);

Posté

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.

Posté

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.

Veuillez vous connecter pour commenter

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



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