1

次の php コードを使用して、xpath クエリからランダムな量の URL を取得します。

@$dom = new DOMDocument();
@$dom->loadHTML( $rawPage );
@$xpath = new DOMXPath( $dom );
@$itemCells = $xpath->query( "//td[@width=120]/a" );

そのプールから URL をランダムに選択して、cURL 経由でアクセスできるようにする必要があります。

私がやりたいのは、見つかった URL の数を取得して、それを最大値として使用できるようにすることです。rand( 0 , $itemCells->length )

ただし$itemCell 、タイプ DOMNodeList のオブジェクトを配列として使用できず、rand() rand() はパラメーター 2 が長く、オブジェクトが指定されていることを期待していることがわかります

おそらく、これについてもっと良い方法があります。

4

1 に答える 1

2

プロパティなので$lengthreadonly関数に渡すときに問題が発生するのではないかと思います。したがって、解決策は、最初に a からローカル変数に$length値を保存してから、次のように を呼び出すことです。DOMNodeListrand()

$max = $itemCells->length; 
$rand = rand( 0, $max);

次に、リストからランダムなノードを取得するためにこれを実行できるはずです。

$random_node = $itemCells->item( $rand);

そこから URL を取得するには、次のようにします。

$url = $random_node->attributes->getNamedItem("href")->nodeValue;
于 2012-07-31T19:32:50.177 に答える