PHP从HTML中剥离

时间:2013-11-18 20:17:08

标签: php html

我正在尝试使用PHP从网页返回三个简单变量。该网页为:http://areacode.org/519我的代码如下:

<!doctype html>
<html>
<head>
<title>Untitled Document</title>
</head>
<?php
//variables
    $quickurl = idk;
    $country = idk;
    $State = idk;
    $city = idk;
//end of variables
    $test = file_get_contents("http://areacode.org/519");
    //$strip = strip_tags($test); Not sure if this is needed.
    echo ("<center>Info about Area code! Country: ".$country.". State: ".$state.". City: ".$city.". Quick reference URL: ".$quickurl."</center>");
?>
<body>
</body>
</html>

我试图剥离国家,州和主要城市以及快速网址。我环顾四周,但没有帮助。我想我可能有点困惑。有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

您需要的只是DOM和XPath:

$dom = new DOMDocument;
@$dom->loadHTMLFile('http://areacode.org/519');
$xpath = new DOMXPath($dom);
$data = $xpath->query("//div[@class='info']//span[@class='value']");
list($country, $state, $city, $url) = array_map(function ($node) {
        return trim($node->nodeValue, "\xc2\xa0"); // strip non-breaking spaces found on source
    }, iterator_to_array($data));
var_dump($country, $state, $city, $url);

这给了我以下内容:

string(6) "Canada"
string(7) "Ontario"
string(6) "London"
string(16) "areacode.org/519"

这就是全部!

答案 1 :(得分:0)

使用$ pos = strpos($ test,“label”);获取您要查找的数据的位置,然后substr();赶上它,容易入手。 或者你可以使用正确的方法: http://us1.php.net/manual/es/domdocument.getelementsbytagname.php