|
|
|
| Невозможно завершить работу скрипта из-за несовпадения массивов, в которых содержаться объекты. Содержимое объектов одинаково. Отличаются они только цифрой после #. Как можно избавиться от этих объектов? Пробовал перевод из одного типа в др., но не помогло. Заменял $url1 == $url2 (который должен сравнивать содержимое объектов) на $url1 === $url2. Ещё беда в том, что в массиве не объект, а куча маленьких объектов, содержащих нужную строку (может массив, в котором строка).
array(6) { [0]=> object(SimpleXMLElement)#11 (1) { [0]=> string(157) "http://www.proxyprince.com/index.php" } [1]=> object(SimpleXMLElement)#6 (1) { [0]=> string(51) "http://dobreprogramy.pl/index.php?dz=12&m=11&r=2008" } [2]=> object(SimpleXMLElement)#5 (1) { [0]=> string(66) "http://www.thewebsqueeze.com/forum/lofiversion/index.php?t716.html" } [3]=> object(SimpleXMLElement)#4 (1) { [0]=> string(111) "http://www.lephpfacile.com/annuaire-rss/1-informations/2-actualites/21-actualite-php-mysql-nexen-net/page-3.php" } [4]=> object(SimpleXMLElement)#3 (1) { [0]=> string(87) "http://www.joomlaportal.de/programmiersprachen-allgemein/188224-php-editor-gesucht.html" } [5]=> object(SimpleXMLElement)#7 (1) { [0]=> string(51) "http://www.mister-wong.de/user/smile/erweiterungen/" } }
array(6) { [0]=> object(SimpleXMLElement)#21 (1) { [0]=> string(157) "http://www.proxyprince.com/index.php" } [1]=> object(SimpleXMLElement)#16 (1) { [0]=> string(51) "http://dobreprogramy.pl/index.php?dz=12&m=11&r=2008" } [2]=> object(SimpleXMLElement)#15 (1) { [0]=> string(66) "http://www.thewebsqueeze.com/forum/lofiversion/index.php?t716.html" } [3]=> object(SimpleXMLElement)#14 (1) { [0]=> string(111) "http://www.lephpfacile.com/annuaire-rss/1-informations/2-actualites/21-actualite-php-mysql-nexen-net/page-3.php" } [4]=> object(SimpleXMLElement)#13 (1) { [0]=> string(87) "http://www.joomlaportal.de/programmiersprachen-allgemein/188224-php-editor-gesucht.html" } [5]=> object(SimpleXMLElement)#17 (1) { [0]=> string(51) "http://www.mister-wong.de/user/smile/erweiterungen/" } }
|
<?php
$url1 = '0';
function get_xmldoc($data)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://xmlsearch.yandex.ru/xmlsearch");
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: application/xml"));
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Accept: application/xml"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_POST, TRUE);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
for ($page = 0; $page < 20; $page++)
{
print "$page<br />";
// XML запрос
$data = <<<DATA
<?xml version='1.0' encoding='utf-8'?>
<request>
<query>php xdebug zend eclipse pdt netbeans</query>
<page>$page</page>
<maxpassages>0</maxpassages>
<groupings>
<groupby attr='d' mode='deep' groups-on-page='10' docs-in-group='1' curcateg='-1'/>
</groupings>
</request>
DATA;
$response = get_xmldoc($data);
$xml = simplexml_load_string($response);
echo "<pre>".var_dump($url1)."</pre><br />";
$urls = $xml->xpath("response/results/grouping/group/doc/url");
/*foreach ($urls as $url)
{
print "$url<br />";
}*/
$url2 = $urls;
echo "<br /><pre>".var_dump($url2)."END</pre>";
if ($url1 === $url2)
{
exit('done');
}
else
{
$url1 = $url2;
}
}
?>
|
| |
|
|
|
|
|
|
|
для: lgar
(13.09.2009 в 16:59)
| | Попробуйте привести объект к массиву и сравнивать массивы. | |
|
|
|
|
|
|
|
для: cheops
(13.09.2009 в 17:13)
| | Спасибо за ответ, но можно на примере каком - нибудь показать как привести объект к массиву, потому что тут я не соображу как через массив попасть к этому объекту.
foreach ($urls as $url)
{
$links[] = (string)$url;
}
|
| |
|
|
|
|
|
|
|
для: lgar
(13.09.2009 в 18:05)
| | Можно воспользоваться конструкцией (array)
foreach ($urls as $url)
{
$links[] = (array)$url;
}
|
| |
|
|
|