- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Справочник по PHP - white cat
Шрифт:
Интервал:
Закладка:
Замечание: SimpleXML содержит правило добавления итеративных свойств к большинству методов. Они не могут быть просмотрены с использованием var_dump() или каких-либо других средств анализа объектов.
Пример 1. Использование метода children()
<?php
$xml = simplexml_load_string(
'<sites>
<site name="spravkaweb.ru">
<site name="links.spravkaweb.ru" />
<site name="forum.spravkaweb.ru" />
<site name="server.spravkaweb.ru" />
</site>
<site name="yandex.ru">
<site name="money.yandex.ru" />
<site name="map.yandex.ru" />
<site name="market.yandex.ru" />
</site>
</sites>');
echo '<ul>';
foreach ($xml->children() as $site) {
echo '<dt>' . $site['name'];
foreach ($site->children() as $subsite) {
echo '<dd>' . $subsite['name'];
}
}
echo '</ul>';
?>
Данный пример выведет:
spravkaweb.ru links.spravkaweb.ru forum.spravkaweb.ru server.spravkaweb.ruyandex.ru money.yandex.ru map.yandex.ru market.yandex.ru
xpath
SimpleXMLElement-xpath
SimpleXMLElement-xpath -- Выполняет Xpath-запрос к XML-данным
Описание
array SimpleXMLElement->xpath ( string path )
Метод xpath ищет дочерние элементы элемента SimpleXML, путь к которому указан в параметре path. Метод возвращает массив объектов SimpleXMLElement.
Пример 1. Xpath
<?php
$string = <<<XML
<a>
<b>
<c>text</c>
<c>stuff</c>
</b>
<d>
<c>code</c>
<b>
<c>plain</c>
</b>
</d>
</a>
XML;
$xml = simplexml_load_string($string);
/* Поиск по <a><b><c> */
$result = $xml->xpath('/a/b/c');
foreach ($result as $node) {
echo '/a/b/c: ' . $node . '<BR>';
}
/* Относительные дорожки также работают ... */
$result = $xml->xpath('b/c');
foreach ($result as $node) {
echo 'b/c: ' . $node . '<BR>';
}
?>
Данный скрипт выведет:
/a/b/c: text/a/b/c: stuffb/c: textb/c: stuff
Два результата в данном случае одинаковы.
simplexml_import_dom
simplexml_import_dom
(PHP 5)
simplexml_import_dom -- Возвращает объект SimpleXMLElement, созданный из DOM-объекта.
Описание
SimpleXMLElement simplexml_import_dom ( DOMNode node [, string class_name] )
Данная функция берет объект DOM и создает на его основе объект SimpleXML. Этот новый объект может быть использован как нормальный объект SimpleXML. Если во время создания объекта произошли ошибки, метод вернет false.
Пример 1. Import DOM
<?php
$dom = new domDocument;
$dom->loadXML('<sites><site><url>spravkaweb.ru</url></site></sites>');
if (!$dom) {
echo 'Ошибка парсинга документа!';
exit;
}
$s = simplexml_import_dom($dom);
echo $s->site[0]->url; // spravkaweb.ru
?>
simplexml_load_file
simplexml_load_file
(PHP 5)
simplexml_load_file -- Интерпретирует XML-файл в объект
Описание
object simplexml_load_file ( string filename [, string class_name [, int options]] )
Эта функция интерпретирует файл filename с правильно сформированными XML-данными в объект SimpleXMLElement. Если в XML-данных имеются ошибки, функция возвратит FALSE.
Вы можете использовать необязательный параметр class_name в функции simplexml_load_file() для того, чтобы функция вернула объект указанного класса. При этом класс должен быть расширением класса SimpleXMLElement.
Начиная с PHP 5.1.0 и Libxml 2.6.0 вы можете использовать необязательный параметр options, спецификация которого описана в additional Libxml parameters.
Замечание: Libxml 2 преобразовывает URL к правильному виду. Т.е. если вы хотите присвоить переменной а значение b&c в URL-строке, вам не обязательно делать: simplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c'))). Начиная с PHP 5.1.0 это делается в автоматическом режиме.
Пример 1. Интерпретация XML документа
<?php
// Файл test.xml содержит XML документ с корневым элементом
// и вложенным элементом title /[root]/title.
if (file_exists('test.xml')) {
$xml = simplexml_load_file('test.xml');
var_dump($xml);
} else {
exit('Ошибка открытия test.xml.');
}
?>
Этот пример выведет следующее:
SimpleXMLElement Object( [title] => Тестовый заголовок ...)
В данном примере вы можете обратиться к элементу title следующим образом: $xml-title.
Смотрите также:
simplexml_load_string()
simplexml_load_string
simplexml_load_string
(PHP 5)
simplexml_load_string -- Интерпретирует строку с XML в объект
Описание
object simplexml_load_string ( string data [, string class_name [, int options]] )
Эта функция берет "правильный" XML-документ, находящийся в строке data и возвращает объект класса SimpleXMLElement, имеющий свойства, равные содержимому xml-документа. Если XML-документ имеет ошибки, функция возвратит FALSE.
Вы можете использовать необязательный параметр class_name для того, чтобы функция simplexml_load_string() вернула объект заданного класса. Этот класс должен расширять класс SimpleXMLElement.
Начиная с PHP 5.1.0 и Libxml 2.6.0, вы можете также использовать необязательный параметр options, содержимое которого определено в additional Libxml parameters.
Пример 1. Преобразование XML-строки
<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
<title>Forty What?</title>
<from>Joe</from>
<to>Jane</to>
<body>
I know that's the answer -- but what's the question?
</body>
</document>
XML;
$xml = simplexml_load_string($string);
var_dump($xml);
?>
Этот пример выведет:
SimpleXMLElement Object( [title] => Forty What? [from] => Joe [to] => Jane [body] => I know that's the answer -- but what's the question?)
В этом примере вы можете также использовать конструкции $xml-body и т.д.
Символические ссылки. Жесткие ссылки.
Немного теории
В системах Unix довольно часто возникает необходимость иметь для одного и того же файла или каталога разные имена. При этом одно из имен логично назвать основным, а все другие - его псевдонимами. В терминологии Unix такие псевдонимы называются символическими ссылками.
Символическая ссылка - это просто бинарный файл специального вида, который содержит ссылку на основной файл. При обращении к такому файлу (например, открытию его на чтение) система "соображает", к какому объекту на самом деле запрашивается доступ, и прозрачно его обеспечивает. Это означает, что мы можем использовать символические ссылки точно так же, как и обычные файлы. Однако иногда нужно бывает работать со ссылкой именно как со ссылкой, а не как с файлом. Для этого и существуют перечисленные ниже функции PHP.
Жесткие ссылки
Создание символической ссылки - не единственный способ задать для одного файла несколько имен. Главный недостаток символических ссылок - существование основного имени файла, на которое все и ссылаются. Попробуйте удалить этот файл - и вся "паутина" ссылок, если таковая имелась, развалиться на куски. Есть и другой недостаток: открытие файла, на который указывает ссылка, происходит несколько медленнее, т.к. системе нужно проанализировать содержимое ссылки и установить связь с "настоящим" файлом. Особенно это чувствуется, если одна ссылка указывает на другую, а та на третью и т.д. уровней на 10.
Жесткие ссылки позволяют вам иметь для одного файла несколько совершенно равноправных имен, причем доступ по ним осуществляется одинаково быстро. При этом, если одно из таких имен будет удалено, то сам файл удалиться только в том случае, если данное имя было последним, и других имен у файла нет.
Зарегистрировать новое имя у файла (то есть создать для него жесткую ссылку) можно с помощью функции link(). Ее синтаксис полностью идеентичен функции symlink(), да и работает она по тем же правилам, за исключением того, что создает не символическую, а жесткую ссылку.
readlink
Возвращает имя основного файла.
Синтаксис:
string readlink(string $linkname)
Возвращает имя основного файла, с которым связан его синоним $linkname. Это бывает полезно, если вы хотите узнать основное имя файла, чтобы, например, удалить сам файл, а не ссылку на него. В случае ошибки функция возвращает значение "ложь".
symlink
Создает символическую ссылку.
Синтаксис:
bool symlink(string $target, string $link)
Эта функция создает символическую ссылку с именем $link на объект (файл или каталог), заданную в $target. В случае "провала" функция возвращает false.