2015-11-19 33 views
0

任何人都可以帮助测试此代码并告诉我错误是什么? 预期的结果是01223658060102111111。但它是重复这样的为什么数组结果是重复的?

01223658060102111111012236580601021111110122365806010211111101223658060102111111 

这里是我的代码

<?php 
ini_set('user_agent', 'My-Application/2.5'); //without this file_get_content would not work 
$saveURL = fopen("url.txt", "w"); 
$html = file_get_contents("http://www.carlist.my/used-cars/2592832/2004-toyota-camry-2-0.html"); 
    $dom = new DOMDocument(); 
    @$dom->loadHTML($html); 
    $xpath = new DOMXPath($dom); 


    $cont = $xpath->evaluate("//ul[contains(@class, 'list-contact')]/li"); 
    foreach($cont as $con){ 
    echo $con->nodeValue; 
    } 
+0

尝试'回声$ CON组>的nodeValue “
”',看看你在你的foreach循环回声实际上是。运行3次 –

+0

在回声后使用'unset($ con)' –

+0

为什么你需要'foreach'? – jitendrapurohit

回答

1

替换该行

$cont = $xpath->evaluate("//ul[contains(@class, 'list-contact')]/li");

$cont = $xpath->evaluate("//ul[contains(@class, 'list-contact')][1]/li");

+0

非常感谢你 – july77

+0

没问题。很高兴它的工作。 –

+0

@ Haktan Suren;我想在数据库的两个字段(contact1,contact2)中插入0122365806和060102111111。你能否给我任何想法? – july77

1

@ july77:我怎样才能将它们分割得到结果0122365806和060102111111

$arr = array(); 
    foreach($cont as $con){ 
    $arr[] = $con->nodeValue; 
    } 
    $first = $arr[0]; 
    $second = $arr[1]; 
+0

如果li元素发生了变化?有时它有1,2,3或3个以上的联系人号码?我们能解决吗? – july77

+1

你可以遍历$ arr数组,但是你不能以这种方式处理数据库。您需要更好的策略来将数据保存在数据库中。例如,你可以将它们保存在一个分隔的分区中,例如, field1 | field2 | field3等等,您可以使用explode('|',$ string)来访问每个单独的项目。当然,这取决于你想如何实现它。 –

+0

是的,再次感谢你的想法:)弓 – july77

相关问题