2011-01-07 10 views
0

私はSimpletesterを使用してCodeIgniterサイトのテストを書いています。 これは、自動生成されたファイルを提供することの1つです。 ファイルの出力が正しいかどうかをテストします。私がしなければファイルをダウンロードするために同じサイトにPHPを呼び出す

しかし、これは:

function testFunction1(){ 
    $url = site_url('downloader/function1'); 
    $handle = fopen($url,'r'); 
    $contents = stream_get_contents($handle); 
    echo $contents; 
    fclose($handle); 
} 

それは私が "www.google.com" をURLとして入れたときに404

それは完璧に動作して出力します。 ブラウザにURLをコピーしてコピーすると、ファイルをダウンロードすることもできます。

ありがとうございます!

編集:私は、通常のファイル(そうではないPHP関数)をダウンロードしようとしても、あなたは相対パスを使用した場合 、完全なURLで、それは404に

+0

まあを使用し、そのURLが存在しませんか? '$ url'には何が入っていますか? –

+0

'site_url()は何をしますか? –

+0

はい、URLが存在します。 –

答えて

0

を与え、単に(SITE_URLを除く)について相対パスのインスタンス

$handle = fopen("/home/rasmus/file.txt", "r"); 
$handle = fopen("/home/rasmus/file.gif", "wb"); 
$handle = fopen("http://www.example.com/", "r"); 
$handle = fopen("ftp://user:[email protected]/somefile.txt", "w"); 

しかしSITE_URLは何かを追加しているようだ:

のfopenは以下を受け付けます。

また、相対パスのディレクトリがcorrentであることを確認してください。

+0

これがファイルの場合、これは正しいでしょう。しかし、その場で作成され、ユーザーにストリーミングされたファイルをダウンロードしたいと考えています。だから私たちはPHP関数を呼び出す必要があります。これはローカルで行うことができますか? –

0

ローカルでアクセスしている場合は、ちょうど

$url = "main/function": 
$file_content = file_get_contents("http://localhost/codeignitor/" . $url); 
関連する問題