1

私は現在、Firefox プラグイン tamperdata によってエクスポートされた XML ファイルを取り込んで、可能な限り制御してコードで再生できるようにする PHP クラスを作成しています。これは基本的に cURL ラッパーであり、完全なソースは次の場所にあります: https://github.com/tstrijdhorst/TamperCurl

私の問題は、私の人生ではSTDERRをファイルに出力できないことです。私は他のコードで cURL を使用してこれを何度も行ってきましたが、問題があるようには見えませんでしたが、現在は単にファイルに何も書き込んでいません。

これは私がそれを初期化する場所です:

    if($this->stderrLocation != null)
    {           
        $handle = fopen($this->stderrLocation,'a+');
        curl_setopt($this->curlSession, CURLOPT_STDERR, $handle);
        curl_setopt($this->curlSession, CURLOPT_VERBOSE, 2); //Verbosity 2 to actually log something to STDERR...
    }

インスタンス変数 stderrLocation は、この関数によって設定されます (はい、デバッガーで確認したところ、必要な値が含まれています)。

public function setOptions($options)
{
        foreach($options as $option => $value)
        {
            switch(strtolower($option))
            {
                case('cookiejarlocation'):
                    $this->setCookieJarLocation($value);
                    break;
                case('stderr'):
                    $this->setSTDERR($value);
                    break;
            }
        }
}

値は次のようにコンストラクターに渡されます。

    $tamperCurl = new TamperCurl('headers.xml',array('stderr' => '/home/shokora/stderr.txt', 'cookieJarLocation' => $this->cookieLocation));

デバッガーで見ると、コードをスキップせず、実際に関数呼び出しに入ります。また、ファイルが存在し、chmod 777 であるため、そこに書き込むことに問題はありません。

ショコラ@ショコラ ~ $ ls -la | grep stderr.txt

-rwxrwxrwx 1 ショコラ ショコラ 0 2012-05-04 13:22 stderr.txt

ここでどんな魔法が働いているのか、誰にも分かりませんか? STDERR出力が本当に必要なので、これは本当に面倒です:r

4

0 に答える 0