2

我正在使用 PHP Simple HTML DOM Parser 来获取 url,但在获取链接时出现错误。看看这个脚本:

$result = str_get_html($result);
foreach($result->find('a') as $element)
$result = str_get_html($result);
$result = str_replace('http://', '', $result);
foreach($result->find('a') as $elementa)
echo $element->href;
echo $elementa->href;

在这里,我想获取所有链接两次,第一次 url$element->href将获取以开头的链接,http://并且 in$elementa->href将获取没有http://.

但这仅显示一个空白页。任何的想法?

4

3 回答 3

1
$result = str_get_html($result);
$arrWithPrefix = array();
$arrWithoutPrefix = array();
foreach ($result->find('a') as $link) {
    $arrWithPrefix[] = $link->href;
    $arrWithoutPrefix[] = str_replace('http://', '', $link->href);
}
var_dump($arrWithPrefix);
var_dump($arrWithoutPrefix);

没测试,看看好不好:)

于 2012-09-18T05:15:44.333 回答
1

您也可以使用此代码,它将 http:// 站点名称设置为链接,并将返回所有链接和一个链接

foreach ($html->find('a') as $e) {
   $cssHrefs = $e -> href;
   preg_match_all('~' . SITE_NAME . '~is', $cssHrefs, $match);
   if (count($match[0]) == 0) {
        $loadedHrefs[] = SITE_NAME . $cssHrefs;
   } else {
        $loadedHrefs[] = $cssHrefs;
}
var_dump($loadedHrefs);
于 2012-09-18T12:06:30.120 回答
0

你也可以试试这个

$result = str_get_html($result);
foreach($result->find('a') as $element){
$result = str_get_html($result);
$result = str_replace('http://', '', $result);
}
foreach($result->find('a') as $elementa){
echo $element->href;
echo $elementa->href;
}
于 2012-09-18T18:04:25.863 回答