Intereting Posts
PHP Datetime не может преобразовать отрицательную дату ISO8601 doctrine2 queryBuilder должен возвращать только соответствие результата с значениями массива (ids): 0 / Null и / или один и / или многие id (ы) должны возвращать один результат Загрузка API Карт Google через AJAX, ошибка консоли Поймать разные типы исключений Используйте array_multisort () с пользовательской функцией Использование php filter_var с mysql_real_escape_string Исходное шифрование PHP – эффективность и недостатки Почему Open Graph Built-In Как не работает больше? Отправить электронное письмо на адрес из ввода формы Когда рекомендуются наиболее рекомендуемые времена использования mysql_real_escape_string () Как «перезагрузить» активную запись CodeIgniter для последовательных запросов? php простая проблема с XML-анализом на недопустимые теги как проверить, разрешено ли allow_url_fopen или нет Кнопка удаления и подтверждение PHP-CodeIgniter: как получить соответствующие значения строк таблицы html, которые будут удалены с помощью Javascript

php parser xml с curl

Возможный дубликат:
PHP Curl, извлечение XML-ответа

Как php parser xml с curl? Вот мой код, как получить xml значения каждого элемента? Благодарю.

<?php define("EMAIL_ADDRESS", "youlichika@hotmail.com"); $ch = curl_init(); $cv = curl_version(); $user_agent = "curl ${cv['version']} (${cv['host']}) libcurl/${cv['version']} ${cv['ssl_version']} zlib/${cv['libz_version']} <" . EMAIL_ADDRESS . ">"; curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt"); curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt"); curl_setopt($ch, CURLOPT_ENCODING, "deflate, gzip, identity"); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_HTTPGET, TRUE); curl_setopt($ch, CURLOPT_URL, "http://en.wikipedia.org/w/api.php?action=opensearch&search=tokyo&format=xml&limit=2"); $xml = curl_exec($ch); curl_close($ch); var_dump($xml); ?> 

XML TREE

 <SearchSuggestion version="2.0"> <Query xml:space="preserve">tokyo</Query> <Section> <Item> <Text xml:space="preserve">Tokyo</Text> <Description xml:space="preserve"> , officially , is one of the 47 prefectures of Japan. </Description> <Url xml:space="preserve">http://en.wikipedia.org/wiki/Tokyo</Url> <Image source="http://img.ruphp.com/php/Japan_Tokyo3.png/36px-Japan_Tokyo3.png" width="36" height="49"/> </Item> <Item> <Text xml:space="preserve">Tokyo Broadcasting System</Text> <Description xml:space="preserve"> (), TBS Holdings, Inc. or TBSHD, is a stockholding company in Tokyo, Japan. It is a parent company of a television network named and radio network named . </Description> <Url xml:space="preserve"> http://en.wikipedia.org/wiki/Tokyo_Broadcasting_System </Url> </Item> </Section> </SearchSuggestion> 

CURL не имеет ничего общего с XML, это просто механизм доставки, который извлекает XML для вас. Это похоже на то, что молочные вкусы разные, потому что один водитель доставки использует автомобиль, а другой использует грузовик.

Для обработки XML в PHP используйте DOM или SimpleXML

 $dom = new DOMDocument(); $dom->loadXML($xml); // where $xml is the result from curl ... do whatever you want with the DOM object here ... 

Вы можете просто загрузить результат в SimpleXML и SimpleXML данные. Вот пример:

 define("EMAIL_ADDRESS", "youlichika@hotmail.com"); $ch = curl_init(); $cv = curl_version(); $user_agent = "curl ${cv['version']} (${cv['host']}) libcurl/${cv['version']} ${cv['ssl_version']} zlib/${cv['libz_version']} <" . EMAIL_ADDRESS . ">"; curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt"); curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt"); curl_setopt($ch, CURLOPT_ENCODING, "deflate, gzip, identity"); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_HTTPGET, TRUE); curl_setopt($ch, CURLOPT_URL, "http://en.wikipedia.org/w/api.php?action=opensearch&search=tokyo&format=xml&limit=2"); $xml_data = curl_exec($ch); curl_close($ch); // Make sure we actually have something to parse if($xml_data) { $parser = simplexml_load_string($xml_data); foreach($parser->Section as $section) { foreach($section->Item as $item) { echo "{$item->Text}\n\n{$item->Description}\n--------------------\n"; } } } 

Вот несколько примеров:

 $ php test.php Tokyo , officially , is one of the 47 prefectures of Japan. -------------------- Tokyo Broadcasting System (), TBS Holdings, Inc. or TBSHD, is a stockholding company in Tokyo, Japan. It is a parent company of a television network named and radio network named . --------------------