Xml çevirileri ve içerik yapmak için bu gibi bir şey kullanabilirsiniz:
Böyle xml yapı şey varsayarak (normal yapısını kullanmak önemlidir, bazı güzel çevik hileler koparmak anlamına gelir!):
<word name="nameofitem">
<en>value</en>
<pt>valor</pt>
<de>value_de</de>
</word>
ve daha sonra bir sınıf xml işlemek için:
class translations
{
public $xml = null;
private $file = null;
private $dom = null;
function __construct($file="translations") {
// get xml
$this->file = $file;
$this->haschanges = false;
$this->xml = file_get_contents($_SERVER['DOCUMENT_ROOT']."/xml/".$file.".xml");
$this->dom = new DOMdocument();
$this->dom->loadXML($this->xml);
}
function updateNode($toupdate, $newvalue, $lang="pt",$rootnode="word"){
$this->haschanges = true;
$nodes = $this->dom->getElementsByTagName($rootnode);
foreach ($nodes as $key => $value) {
if ($value->getAttribute("name")==$toupdate) {
$nodes->item($key)->getElementsByTagName($lang)->item(0)->nodeValue = htmlspecialchars($newvalue,ENT_QUOTES,'UTF-8');
}
}
}
function saveUpdated(){
$toSave = $this->dom->saveXML();
if ($this->haschanges === true) {
file_put_contents($_SERVER['DOCUMENT_ROOT']."/xml/".$this->file.".xml", $toSave);
return true;
}
else {
return false;
}
}
}
Ben kısalık için, ben yöntemlerden birkaçı çıkardı, ama ben de vb dosyası ve görüntü yüklenenler işlemek şeyler ile bu uzatmak.
Eğer tüm bu sahip olduktan sonra bunu yapabilirsiniz:
$xml = new translations();
// loop through all the language posts
foreach ($_POST["xml"]["en"] as $key => $value) {
$xml->updateNode($key, stripslashes($value), "en");
}
Ya da bu size bazı fikirler verir inşallah ;) bir şey!