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;

ここでは、すべてのリンクを 2 回取得したいと考えています。最初の URL では で$element->href始まるリンクが取得http://され、 ではの$elementa->hrefないリンクが取得されますhttp://

しかし、これは空白のページしか示していません。何か案が?

4

3 に答える 3

1

このコードを使用して http:// サイト名をリンクに設定し、すべてのリンクを 1 つのリンクで返すこともできます

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 に答える
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 に答える
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 に答える