0

Windows 7 64 ビット マシンの XAMPP 環境で作業しています。Apache 2.4 サービスがインストールされています。私が抱えている問題は、約1日の間私を困惑させました。

私のphpファイルはすべて、この時点まで期待どおりに実行されました。最近、次で始まるファイルを作成しました。

    function get_web_page($url,$attempt=1){
        if($attempt <4){
            $options = array(
                CURLOPT_RETURNTRANSFER => true,     // return web page
                CURLOPT_HEADER         => false,    // don't return headers
                CURLOPT_FOLLOWLOCATION => true,     // follow redirects
                CURLOPT_ENCODING       => "",       // handle all encodings
                CURLOPT_USERAGENT      => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1", // who am i
                CURLOPT_AUTOREFERER    => true,     // set referer on redirect
                CURLOPT_CONNECTTIMEOUT => 30,      // timeout on connect
                CURLOPT_TIMEOUT        => 30,      // timeout on response
                CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
            );
            $ch      = curl_init( $url );
            curl_setopt_array( $ch, $options );
            $content = curl_exec( $ch );
            $err     = curl_errno( $ch );
            $errmsg  = curl_error( $ch );
            $header  = curl_getinfo( $ch );
            curl_close( $ch );

            if($err == 0){
                return $content;
            }else{
                return get_web_page( $url, $attempt + 1 );
            }
        }else{
            return FALSE;
        }
    }

Web ページを取得するための単純な関数であり、何もエコーしません。しかし、ブラウザーでこのページにアクセスすると (この時点では関数のみを定義し、他には何も定義されていません)、「=>」の最初のインスタンス (引用符なし) に続くすべてがページに出力されます。これがなぜなのかわかりません。同じディレクトリにある他のすべての php ファイルは、期待どおりに動作します。

この問題が発生する理由と、それを解決するために必要な手順を理解するのを手伝ってください。

4

1 に答える 1

2

ブラウザに渡されたページのソースを見ると、おそらく php ソース全体がプレーンテキストで表示されます。最初の後にあるもののみをレンダリングしています。これは、 の開始後に最初に見つかった=>終了である可能性が高いためです。最初の部分は、お使いのブラウザーが奇妙な HTML タグ内にあると認識しているため、レンダリングされません。><<?php

*.phpPHPインタープリターを介してページのリクエストをルーティングしていないため、Apache構成を確認してください。

于 2012-12-07T17:29:51.107 に答える