Редактировать XML как простой текстовый файл в PHP - PullRequest
0 голосов
/ 23 ноября 2011

Я хочу заменить адрес сервера внутри XML-файла. Размещенный заполнитель %scr_path% на линии.

<property id="urlGenerateImage">%scr_path%/imgcap.php</property> 

Используя следующий код

$path=$wsurl."core/contents/tests";
//read the entire string
$str=implode("\n",file('../includes/ckeditor/plugins/fmath_formula/dialogs/configMathMLEditor.xml'));

$fp=fopen('../includes/ckeditor/plugins/fmath_formula/dialogs/configMathMLEditor.xml','w');
//replace something in the file string 
$str=str_replace('%scr_path%',$path,$str);

//now, TOTALLY rewrite the file
fwrite($fp,$str,strlen($str));

Получение кучу ошибок о неправильном пути к файлу. Проверил дважды путь. Что не так?

1 Ответ

1 голос
/ 23 ноября 2011

Все зависит от того, в каком каталоге работает ваш скрипт. Поскольку вы используете относительный путь (../), вам лучше быть уверенным, что вы знаете, в каком каталоге находится скрипт в данный момент. Или, еще лучше,установите его в начале вашего скрипта, чтобы он всегда работал.

$path = $wsurl."core/contents/tests";

// change directory to project root
chdir("/your/project/directory");

// read the file into a string
$filename = 'includes/ckeditor/plugins/fmath_formula/dialogs/configMathMLEditor.xml';
$str = file_get_contents($filename);

// replace token
$str = str_replace('%scr_path%',$path,$str);

// save file
file_put_contents($filename, $str);
...