Kindle はファイルの種類を拡張子で認識することに気付きました。そこで、ファイルをダウンロードし、「.azw」拡張子を追加し、ダウンロード リンクを提供する小さなスクリプトを自分の Web サイトに書きました。うまくいくときもあるけど…
問題は、私は PHP 開発者ではなく、スクリプトが最善の方法で書かれていないことです。問題は、スクリプトが一部のファイル (exe) をダウンロードせず、別の exe をロードすることです。ファイルが見つからないというエラーが表示され、filename.exe.azw
長さが 0 のファイルが作成されます。この問題は Kindle でのみ発生しますが、PC では問題ありません。
また、9Mb 以下のファイルしかダウンロードできないようです。
コードは次のとおりです。
<?php
if(!isset($_POST['link'])) {
?>
<form method="post" action="file.php">
<p>
Enter link: http://
<input type="text" name="link" size="20"/>
<input type="submit" name="submit" value="submit" />
</p>
</form>
<?php
} else {
$remote = 'http://' . $_POST['link'];
$download = download($remote);
echo 'Download: <a href="' . $download . '">' . $download . '</a>';
}
function download($url) {
$lastDashPos = strrpos($url, '/');
$local = substr($url, $lastDashPos + 1, strlen($url) - $lastDashPos) . '.azw';
$handle = file_get_contents($url);
file_put_contents($local, $handle);
return $local;
}
?>
テストしたい場合は、スクリプトはhttp://forexsb.com/test/file.phpにあります。