PHP preg_replace yoluyla aktarılan XML dosyasında düğüm harf değişimi

1 Cevap php

Ben ithal bir XML dosyasını işlemek ve düğümlerin birinde metni yapmaya çalışıyorum

<Name>SOMETHINGTOMAKELOWERCASE</Name>

küçük

<Name>somethingtomakeküçük</Name>

Bugüne kadar ben aldım:

$xml = file_get_contents($xmlfile);
$xml = preg_replace('/<Name>(.*)<\/Name>/e', '<Name>' . strtolower($1) . '</Name>',$xml); 
fwrite(fopen($xmlfile, 'wb'), $xml);

Ben işleçleri yaklaşık on farklı versiyonlarını denedim, ama bunların hiçbiri çalışacaktır. Eğer doğru regexp olarak doğru yönde bana gelin misiniz?

1 Cevap

Bunun yerine bu deneyin:

$xml = file_get_contents($xmlfile);
$xml = preg_replace('/<Name>(.*)<\/Name>/e', "'<Name>' . strtolower('\\1') . '</Name>'",$xml); 
fwrite(fopen($xmlfile, 'wb'), $xml);

Preg_replace de / e değiştirici kullanırken, değiştirme parametresi değil, zaten değerlendirildi ifadesi olarak değerlendirilebilir kod bir dize geçmek zorunda.