0

テキスト領域をphpスクリプトに投稿しています。そこで、テキスト領域の各行に対してループを実行し、テキスト領域ループのデータをもう一度使用します。次に、それぞれに配列を設定し、最後にそれらすべての配列を取得しようとしています。しかし、私のコードは私にエラーを与えています:

if (isset($_POST['submit'])) {
        $entries = array();
    $text    = trim($_POST['facebookpage']);
    $text    = explode("\n", $text);
    foreach ($text as $line) {
        $data = $html2->find("table.profileInfoTable");
        $text2 = trim($data[0]);
        $text2 = explode("<tr>", $text2);
        foreach ($text2 as $line) {
            if (strpos($line, 'Location') !== false) {
                $location = $line;
            }
        }
        $data1 = $html2->find("table.profileInfoTable");
        $text2 = trim($data1[0]);
        $text2 = explode("<tr>", $text2);
        foreach ($text2 as $line) {
            if (strpos($line, 'Email') !== false) {
                $email = $line;
            }
        }
    $mainarray = array("Email" => $email, "Location" => $location);
    array_push(($mainarray),$entries);
    }
    var_dump($entries);
}`

また、エラーは次のとおりです。

Fatal error: Only variables can be passed by reference in /home2/statonme/public_html/scraper.php on line 61
4

2 に答える 2

1

通常、PHP のエラー メッセージを見ると、スクリプトの何が問題なのかがよくわかります。

あなたのスクリプトの 'Line 61' がどこにあるのかわかりませんが、括弧内に何かを入れると、それは '方程式' と見なされると思います...つまり、それ($main_array)は変数ではありません...そして、あなたはできません式を変更します。変数のみを変更できます。

$main_array中の括弧を外してarray_push(($mainarray),$entries);(: にするarray_push($mainarray, $entries);)、結果を返してください。

于 2013-03-23T07:42:46.317 に答える
1

私はあなたがarray_push後方への議論を持っていると思います。追加する配列は最初の引数である必要があり、残りの引数は追加される要素です。したがって、次のようになります。

array_push($entries, $mainarray);

または、より簡単に:

$entries[] = array("Email" => $email, "Location" => $location);
于 2013-03-23T08:01:18.937 に答える