Конвертер из PHP4 domxml в PHP5 dom

DOMXML в PHP5? Это просто!

domxml to php5

Предыстория: необходимо было перенести клиентский сайт с одного сервера виртуального хостинга на другой сервер виртуального хостинга. Задача банальная, однако на новом сервере не было поддержки PHP4, что в своем роде оправдано, но в результате этого возникли определенные проблемы.

Проблема заключалась в том, что сайт клиента был запилен давно и для его корректной работы требовалось расширение DOMXML, которое использовалось только в PHP4 и имело статус экспериментального. Подробнее о DOMXML можно почитать, в принципе, здесь. На новом сервере самой старой версией PHP была версия PHP 5.2, в следствии чего сайт отказывался корректно отображаться.

В принципе можно было оставить все как есть и послать клиента к web-разработчикам, чтобы ему переписали сайт. Однако порыскав в гугле был найден костыль. Решение до банальности простое. Некий добрый человек написал конвертер из PHP4 domxml в PHP5 dom. Сам конвертер ничто иное как обычный PHP файл (скачать можно здесь), который необходимо разместить на хостинге и в файле, который использует DOMXML прописать пару строк (не забудьте переименовать файл из .txt в .php):

if (PHP_VERSION>='5')
require_once('domxml-php4-to-php5.php');

В целом ваш файл будет выглядеть так:

<?php
//PHP4 script using domxml extension
//We want to make it run on PHP5 with dom
if (PHP_VERSION>='5')
require_once('domxml-php4-to-php5.php'); //Load the PHP5 converter
if ($dom=domxml_open_file('test.xml'))
{
$root=$dom->document_element();
$bs=$root->get_elements_by_tagname('body');
if (count($bs)==1)
{
$body=$bs[0];
$p=$dom->create_element('p');
$p->append_child($dom->create_text_node('a new paragraph'));
$body->append_child($p);
$body->append_child($dom->create_text_node("\n"));
}
$dom->dump_file('test.xml',false,false);
}
?>

Вот в целом и все. Но это всего-лишь костыль, по этой причине использовать его необходимо лишь в крайнем случае. Лучше, конечно, обратиться к специалистам, чтобы переписали сайт под последнюю версию PHP.


Не будь занудой, поделись с друзьями.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

70 запросов. 0,808 секунд. 28.07 Мб