我正在使用PHP Simple HTML DOM Parser来获取网址,但是在获取链接时出错了。看看这个脚本:
$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;
在这里,我想要获取所有链接两次,$element->href
中的第一次网址将获取以http://
开头的链接,而$elementa->href
中的网址将获取不包含http://
的链接。
但这只显示一个空白页面。有什么想法吗?
答案 0 :(得分: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);
未经测试,看看它是否有用:)
答案 1 :(得分:1)
您也可以使用此代码将http:// sitename设置为链接,并返回包含一个链接的所有链接
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);
答案 2 :(得分: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;
}