Позволяет сказать, что в моем Flash-проекте у меня есть скрипт, который динамически создает для меня xml-файлы (по PHP). Имя файла XML основано на определенной переменной и экранировано с использованием escape(variable)
в том случае, если эта переменная может (и в большинстве случаев) содержать неподдерживаемые символы имен файлов ...PHP - DOMDocument загружает XML с зашифрованным именем
Мне нужно знать точное имя xml-файла позже в моем Flash-проекте, потому что я Загружайте эти файлы XML только в том случае, если unescape(XMLfile) == variable
. Там очень много переменных, так что я не могу просто использовать String.replace()
функции, чтобы стереть unsuported fileneme символов ...
Там часть PHP файла Я использую:
$XMLDom = new DomDocument('1.0', 'UTF-8');
$xmlId = trim($_POST['xmlId']);
if(file_exists($xmlId)){
$XMLDom ->load($xmlId);
}else{
$newXMLHandler = fopen($xmlId, 'w') or die("can't open file");
fclose($newXMLHandler);
$XMLDom ->load($xmlId);
.... rest of the code ....
$XMLDom ->save($xmlId);
}
Результат коды выше, что в каталоге 2 вновь созданные XML файлы
Один XML пустые, созданные fopen($xmlId, 'w')
, названные: "ц% 20le% 2C% 2E% 40.xml" и второй один с именем: "фи ле, . @. xml ", где все мои новые X Данные ML хранятся ...
Есть ли способ загрузить экранированный XML-файл с помощью PHP?
Заранее благодарен.
Arthur.
Проблема заключается в том, что XML не будет загружаться из экранированного (или urlencoded) имени файла. DomDocument всегда отменяет имя, которое я запрашиваю, и пытаюсь загрузить '** file,. @. Xml **' вместо '** fi% 20le% 2C% 2E% 40.xml **'. Эти имена, например, относятся только к файлу: '**/z \\ *' c. "L.xml ** '? Невозможно даже сохранить его. Мне нужна замена строки для моей переменной, которая полностью разрешен как имя файла, может быть загружен как xml и декодирован в исходную переменную. –
Да, он работает хорошо с fopen(). Спасибо за предложение. Я не могу использовать какой-либо увеличивающий счетчик, потому что все xml создаются на основе пользовательского ввода ;) –