T
ToM80
Guest
Hi,
ich verzweifel gerade an einer Funktion die zur Übersetzung von Wörtern gedacht ist. Folgendes ist der Code:
XML-Datei mit Platzhalter:
XML mit Übersetzung:
hier das php-script welches die übersetzung anfordert:
hier die übersetzungsfunktion:
Nun das was mich verzweifeln lässt. Bislang hat alles wunderbar geklappt. Jedoch bekomme ich bei genau der oben geschrieben Konstellation folgenden Output:
[!{{ACC_SHOW}}!]
Nun das (für mich) verrückte und nicht nachvollziehbare:
Ersetzte ich:
durch:
kommt die völlig korrekte Ausgabe
Übersicht
Ich versteh das nicht. Habe es schon mit parse_str, mit und ohne Anführungszeichen vor dem Aufruf und mit und ohne utf8_decode versucht und mit ich weiß gar nicht mehr was. das Ergebnis ändert sich nicht solange ich das ganze aus der XML ziehe
Was übersehe ich oder mache ich falsch?
ich verzweifel gerade an einer Funktion die zur Übersetzung von Wörtern gedacht ist. Folgendes ist der Code:
XML-Datei mit Platzhalter:
Code:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<elements>
<element id="1">
<item>
<title>
<![CDATA[
[!{{ACC_SHOW}}!]
]]>
</title>
</item>
</element>
...
XML mit Übersetzung:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<contents>
<content>
<NAME><![CDATA[ACC_SHOW]]></NAME>
<TRANSLATING><![CDATA[Übersicht]]></TRANSLATING>
</content>
...
hier das php-script welches die übersetzung anfordert:
PHP:
$xml=simplexml_load_file('mein.xml');
$returnmentArr=array();
$e=0;
foreach ($xml->element as $ele) {
$returnmentArr[$e]['title1']=replaceSh("utf8_decode($ele->item->title)",$modul,'[!{{','}}!]');
$e++;
}
hier die übersetzungsfunktion:
PHP:
function replaceSh($spaceholder,$modul,$oT='',$cT='') {
$xml=simplexml_load_file('meinanderes.xml');
$replacementArr=array();
foreach ($xml->content as $msg) {
if ($oT.utf8_decode($msg->NAME).$cT==$spaceholder) {
$replacementArr['name']=utf8_decode($msg->NAME);
$replacementArr['replace']=utf8_decode($msg->TRANSLATING);
break;
}
}
$content=str_replace($oT.$replacementArr['name'].$cT, $replacementArr['replace'], $spaceholder);
return $content;
}
Nun das was mich verzweifeln lässt. Bislang hat alles wunderbar geklappt. Jedoch bekomme ich bei genau der oben geschrieben Konstellation folgenden Output:
[!{{ACC_SHOW}}!]
Nun das (für mich) verrückte und nicht nachvollziehbare:
Ersetzte ich:
PHP:
$returnmentArr[$e]['title1']=replaceSh("utf8_decode($ele->item->title)",$modul,'[!{{','}}!]');
PHP:
$returnmentArr[$e]['title1']=replaceSh("[!{{ACC_SHOW}}!] ",$modul,'[!{{','}}!]');
Übersicht
Ich versteh das nicht. Habe es schon mit parse_str, mit und ohne Anführungszeichen vor dem Aufruf und mit und ohne utf8_decode versucht und mit ich weiß gar nicht mehr was. das Ergebnis ändert sich nicht solange ich das ganze aus der XML ziehe
Was übersehe ich oder mache ich falsch?