ファイルのダウンロードページを解析しようとしていて、URLで渡された引数に応じて、適切なダウンロードファイルに自動的にリダイレクトします。私はそれをエコーするとすべてうまく動作しますが、私はheader()を使用しようとすると何もしません。PHPヘッダー()がリダイレクトで機能しません
<?php
require_once('simple_html_dom.php');
$html = file_get_html('http://dl.bukkit.org/downloads/craftbukkit/');
$dom = new DOMDocument;
libxml_use_internal_errors(true);
//echo $dom->loadHTML($html) ? "success<br/>" : "failed<br/>";
libxml_clear_errors();
$dom->preserveWhiteSpace = true;
$version = $_GET['version'];
if($version == "beta")
{
foreach ($dom->getElementsByTagName('div') as $element)
{
if($element->getAttribute('class') == "downloadButton chan-rb mini")
{
foreach ($element->getElementsByTagName('a') as $link)
{
if($link->getAttribute('class') == "tooltipd")
{
$lnk = $link->getAttribute('href')."<br/>";
$url = "Location:http://dl.bukkit.org".$lnk;
header($url);
}
}
}
}
}
?>
私はこの前にHTMLを使用していませんが、すでに送信されているヘッダーの問題に取り組んでいると思います。実際のファイルにリダイレクトするための良い選択肢があります(この場合は.jar拡張子です)。
htmlはあまり意味がありません。それはPHPの警告などを含むことができる任意の種類の** ANY **出力です。あなたが行ったかPHPが行ったかにかかわらず、1バイトの出力が送信された時点で、「ヘッダは既に送られました」という警告が出されます。 –
あなたの 'Location'ヘッダに'
'があるのはなぜですか? – alex
これは、以前の、良いキャッチから残っていた。そして、Marc B.の説明に感謝します。私は代わりに何が使えますか? –