ディレクトリ内のファイルを反復処理し、それらへのリンクを出力するphpスクリプトを作成しました。ファイル名はスペイン語なので、á、é などの文字が含まれているものがあります。
私のスクリプトは、windows + apache + php である開発マシンでは正常に動作しますが、私のホスティング サーバーである linux + apache + php では動作せず、ファイルが見つかりません。
一部の検索では urlencode() の使用が提案されていますが、これを行うと開発マシンで壊れるため、Web サーバーで試したことはありませんが、受け入れられません。
編集: urlencode() を使用した場合の開発マシンでのエラーの詳細。
2 つのエラーがあるようです。1 つはファイル名に á、é などの文字が含まれている場合です。もう 1 つはファイル名に空白が含まれている場合です。
空白を含むファイル名 (つまり、「Calidad Total .doc」) は、次のリンクhttp://localhost/temarios/docs/Calidad+total+.docを取得し、404 ファイルが見つからないというエラーが表示されます。アドレスバーの「+」を「」に置き換えると、正常に機能します。
アクセント付きの文字を含むファイル名 (つまり、Economía.doc) はリンクhttp://localhost/temarios/docs/Econom%EDa.docを取得し、403 Forbidden エラーが発生します。アドレス バーの「%ED」を「í」に置き換えると、正常に機能します。
Firefox 3 および IE8 Windows 7 ベータ版でテストしましたが、両方のブラウザーで同じことが起こります。