2009-08-01 4 views
0

가져온 XML 파일을 처리하고 노드 중 하나에 텍스트를 만들려고합니다.PHP preg_replace를 통해 가져온 XML 파일의 노드 대/소문자 변경

소문자

<Name>somethingtomakelowercase</Name> 

지금까지

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

10 개의 서로 다른 버전의 정규 표현식을 시도했지만 어느 것도 작동하지 않습니다. 올바른 정규 표현식을 올바른 방향으로 가르쳐 주시겠습니까?

답변

2

대신을 시도해보십시오

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

preg_replace이다에서/E 수정을 사용하는 경우, 귀하는 교체 할 매개 변수가 아닌 이미 평가 된 표현으로 평가 될 코드의 문자열을 전달해야합니다.

+0

+1 : 정말 멋지다. 나는 몰랐다. – Josh

+0

내가 필요한 모든 것 - 명성 :) – Lukas