Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/06/2015, à 17:48

voxdemonix

[SOLVED][PHP]problem d'utilisation de preg_replace avec des valeur XML

Voila je me prend la tête depuis plus de deux heures sur une connerie monumentale dont j'espère que vous allez pouvoir m'aider a sortir.
Contexte: Je suis en train de coder un module de traduction qui doit ne tenir qu'en quelques lignes (récupérer les valeurs dans le fichiers de traduction mouliner le tout a coups de boucle et de preg_replace).
l'objectif est de faire une fonction de type

function maFonction($maStringATraduire){
	global $maLangue;
	//recup du xml
	$xml = simplexml_load_file("trad.xml");
	//moulinette
	foreach($xml->$maLangue as $pattern=>$replace){
		$stringTraduite = preg_replace('/'.$pattern.'/', $replace, $maStringATraduire);
	}
	return $stringTraduite;
}
<?php

$string = "jeNeFonctionnePas";
	echo 'test via string : ';
echo preg_replace('/jeNeFonctionnePas/', 'Hello World' ,$string); // fonctionne

	echo '<br />test via xml directement integre : ';
	$xml = simplexml_load_file("trad.xml");
echo preg_replace('/jeNeFonctionnePas/', $xml->fr->jeNeFonctionnePas ,$string); //ne fonctionne pas


	echo '<br />test via xml foreach : ';
foreach($xml->fr as $k=>$v){
echo preg_replace('/'.$k.'/', $v ,$string);

}
	echo '<br />test cruciale via foreach : ';
	$xml2 = simplexml_load_file("./trad.xml");
$plop = $xml2->fr;
foreach($plop as $k=>$v){
	//langue
			echo preg_replace('/'.$k.'/', $v ,$string); //ne fonctionne pas
}

	echo '<br />test cruciale via double foreach : ';
	$lang ="fr"; $test = '';
foreach($xml2 as $firstValue=>$content){
	//langue
		if ($firstValue == $lang){
			foreach($content as $pattern=>$replace){
				//echo 'pattern = '.$pattern.' et replace = '.$replace.';<br />';
				$replace = strval($replace); // var_dump indiquant que c'est un objet et non une string, on corrige
				$test = preg_replace('/'.$pattern.'/', $replace , strval($string)); //ne fonctionne pas
			}
		}
}
echo $test;
?>

Dernière modification par voxdemonix (Le 08/10/2020, à 15:32)

Hors ligne

#2 Le 27/06/2015, à 14:04

voxdemonix

Re : [SOLVED][PHP]problem d'utilisation de preg_replace avec des valeur XML

Ca c'est de la réponse constructive digne d'ubuntu-fr...

Hors ligne

#3 Le 27/06/2015, à 14:14

pires57

Re : [SOLVED][PHP]problem d'utilisation de preg_replace avec des valeur XML

Salut,

Tu pourrais fournir les 50 dernière ligne de ton fichier de log? (et éviter de généraliser aussi ce serais sympa)
Cependant je confirme HP que ton commentaire est immonde, non constructif et te conseille vivement d’arrêter de poster 'juste pour avoir un post de plus'


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne