я питаюсь по максимуму не использовать плагинов но с аджаксом никогда не работал тимболее в вордпресе (хотя плагини я тоже пробовал чтото ерори всегда от них валились)
Алексей Скобкин: смотри нашол вот такой кусок кода помоги мне его переделать под мой хмл <?
function webi_xml($file)
{
global $webi_depth; // счетчик, для отслеживания глубины вложенности
$webi_depth = 0;
global $webi_tag_open; // будет содержать массив открытых в данный момент тегов
$webi_tag_open= array();
global $webi_data_temp; // этот массив будет содержать данные одного тега
####################################################
### функция работы с данными
function data ($parser, $data)
{
global $webi_depth;
global $webi_tag_open;
global $webi_data_temp;
// добавляем данные в массив с указанием вложенности и открытого в данный момент тега
$webi_data_temp[$webi_depth][$webi_tag_open[$webi_depth]]['data'].=$data;
}
############################################
####################################################
### функция открывающих тегов
function startElement($parser, $name, $attrs)
{
global $webi_depth;
global $webi_tag_open;
global $webi_data_temp;
// если уровень вложенности уже не нулевой, значит один тег уже открыт
// и данные из него уже в массиве, можно их обработать
if ($webi_depth)
{
// здесь начинается обработка данных, например добаление в базу, сохранение в файл и т.д.
// $webi_tag_open содержит цепочку открытых тегов по уровню вложенности
// например $webi_tag_open[$webi_depth] содержит название открытого тега чья информация сейчас обрабатывается
// $webi_depth уровень вложенности тега
// $webi_data_temp[$webi_depth][$webi_tag_open[$webi_depth]]['attrs'] массив атрибутов тега
// $webi_data_temp[$webi_depth][$webi_tag_open[$webi_depth]]['data'] данные тега
// после обработки данных удаляем их для освобождения памяти
unset($GLOBALS['webi_data_temp'][$webi_depth]);
}
// теперь пошло открытие следующего тега и дальше обработка его произойдет на следующем шаге
$webi_depth++; // увеличиваем вложенность
$webi_tag_open[$webi_depth]=$name; // добавляем открытый тег в массив информаци
$webi_data_temp[$webi_depth][$name]['attrs']=$attrs; // теперь добавляем атрибуты тега
}
###############################################
#################################################
## функция закрывающих тегов
function endElement($parser, $name) {
global $webi_depth;
global $webi_tag_open;
global $webi_data_temp;
// здесь начинается обработка данных, например добаление в базу, сохранение в файл и т.д.
// $webi_tag_open содержит цепочку открытых тегов по уровню вложенности
// например $webi_tag_open[$webi_depth] содержит название открытого тега чья информация сейчас обрабатывается
// $webi_depth уровень вложенности тега
// $webi_data_temp[$webi_depth][$webi_tag_open[$webi_depth]]['attrs'] массив атрибутов тега
// $webi_data_temp[$webi_depth][$webi_tag_open[$webi_depth]]['data'] данные тега
unset($GLOBALS['webi_data_temp']); // после обработки данных удаляем массив с данными целиком, так как произошло закрытие тега
unset($GLOBALS['webi_tag_open'][$webi_depth]); // удаляем информацию об этом открытом теге... так как он закрылся
// указываем какие функции будут работать при открытии и закрытии тегов
xml_set_element_handler($xml_parser, "startElement", "endElement");
// указываем функцию для работы с данными
xml_set_character_data_handler($xml_parser,"data");
// открываем файл
$fp = fopen($file, "r");
$perviy_vxod=1; // флаг для проверки первого входа в файл
$data=""; // сюда собираем частями данные из файла и отправляем в разборщик xml
// цикл пока не найден конец файла
while (!feof ($fp) and $fp)
{
$simvol = fgetc($fp); // читаем один символ из файла
$data.=$simvol; // добавляем этот символ к данным для отправки
// если символ не завершающий тег, то вернемся к началу цикла и добавим еще один символ к данным, и так до тех пор, пока не будет найден закрывающий тег
if($simvol!='>') { continue;}
// если закрывающий тег был найден, теперь отправим эти собранные данные в обработку
// проверяем, если это первый вход в файл, то удалим все, что находится до тега <?
// так как иногда может встретиться мусор до начала XML (корявые редакторы, либо файл получен скриптом с другого сервера)
if($perviy_vxod) {$data=strstr($data, '<?'); $perviy_vxod=0;}
// теперь кидаем данные в разборщик xml
if (!xml_parse($xml_parser, $data, feof($fp))) {
// здесь можно обработать и получить ошибки на валидность...
// как только встретится ошибка, разбор прекращается
echo " XML Error: ".xml_error_string(xml_get_error_code($xml_parser));
echo " at line ".xml_get_current_line_number($xml_parser);
break;
}
// после разбора скидываем собранные данные для следующего шага цикла.
$data="";
}
fclose($fp);
xml_parser_free($xml_parser);
// удаление глобальных переменных
unset($GLOBALS['webi_depth']);
unset($GLOBALS['webi_tag_open']);
unset($GLOBALS['webi_data_temp']);
}
webi_xml('1.xml');
я никак не пойму как получить дание с парсера и занести их в базу можеш написать пример запроса?
суть така даний хмл герерируєт 1с раз в час и закидивает на хостинг мне надо чтоб бил парсер которий будет заливать все в базу каждий час (тойсть файл обновилса запустилса скрипт обновил дание в бд
)