- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Привет всем!
Помогите с оптимизацией кода для вытягивания данных из xml(*.fb2)
формат xml
<?xml version="1.0" encoding="windows-1251"?>
<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink">
<description>
<title-info>
<author>
<first-name>Имя</first-name>
<middle-name>Отчество</middle-name>
<last-name>Фамилия</last-name>
</author>
<book-title>Название</book-title>
<annotation>
Аннотация книги
</annotation>
<coverpage>
<image l:href="#cover.jpg"/>
</coverpage>
</title-info>
</description>
<body>
Тест книги
</body>
<binary content-type="image/jpeg" id="cover.jpg"> бинарный код картинки </binary>
</xml>
то что получилось
нужно сократить или систематизировать код
<?php
session_start();
if (!isset($_SESSION['a'])) $_SESSION['a']='0';
if (!isset($_SESSION['b'])) $_SESSION['b']='0';
if (!isset($_SESSION['c'])) $_SESSION['c']='0';
$link = "book.fb2";
function startElement($parser, $name, $attrs)
{
global $intag,$dist;
if ($name=='title-info')
{
$_SESSION['b']='1';
}
elseif ($name=='document-info')
{
$_SESSION['b']='0';
};
if ($name=='annotation')
{
$_SESSION['c']='1';
}
else
{
$_SESSION['c']='0';
};
if ($name=='binary')
{
echo "<img src='data:image/png;base64,";
$_SESSION['a']='1';
}
elseif ($_SESSION['b']=='1' OR $_SESSION['c']=='1')
{
if ($name=='last-name' OR $name=='first-name' OR $name=='annotation' OR $name=='p' OR $name=='book-title') { $_SESSION['a']='1'; } else { $_SESSION['a']='0'; };
}
else
{
$_SESSION['a']='0';
};
if ($name=='p') { if ($_SESSION['b']=='1' OR $_SESSION['c']=='1') echo " "; };
};
function endElement($parser, $name)
{
global $intag,$dist;
if ($_SESSION['a']=='1' AND $name=='p') echo "<br>";
if ($name=='last-name' OR $name=='book-title') echo "<br>";
if ($name=='binary') echo "'/>";
}
function characterData($parser, $data)
{
global $dist,$intag;
if ($_SESSION['a']=='1') echo "$data";
};
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, false);
if (!($fp = fopen($link, "r"))) die("could not open XML input");
while ($data = fread($fp, 4096))
{
if (!xml_parse($xml_parser, $data, feof($fp)))
die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));
}
xml_parser_free($xml_parser);
?>