- ベストアンサー
URLの存在チェック
入力されたURLが実際に存在するかチェックする場合 どのように記述すれば良いのでしょうか。 file_existsを使用した場合存在するURLでも全てFALSEで返ってきてしまいました。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
関連するQ&A
- ファイルの存在チェックとエンコード
自分なりに調べてファイルの存在チェック後、filemtime順にソートを する処理を書いてみましたがいまいち自信がないので、ご教授お願いします。 後、エンコードがうまくいかないのか日本語を出力しても表示がされません。 ご指摘ご教授お願いします。 <html> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> <?php //ファイルの存在チェック if (file_exists('hoge01.html')) { $page['hoge1.htm'] = filemtime('hoge01.html'); } if (file_exists('hoge02.html')) { $page['hoge2.htm'] = filemtime('hoge02.html'); } if (file_exists('hoge03.html')) { $page['hoge3.htm'] = filemtime('hoge03.html'); } //ファイルが空の場合の処理 if($page == false) { echo "ファイルが存在しません。"; } //ファイルが存在すればfilemtime順にソートの処理 else{ asort($page); foreach($page as $key => $value){ echo $key; echo "<br>"; echo "<hr>"; } } ?> </html>
- 締切済み
- PHP
- HPの重複をチェック&そのURLが存在するかどうかチェックするソフトってありますか?
2つフリーソフトを探しています 一つは多数あるURLの重複をチェックしてくれるソフトで もう一つはURLを入力して そのURLのページが存在するかどうかチェックするソフトです ご存じでしたら教えてください よろしくお願いします
- ベストアンサー
- フリーウェア・フリーソフト
- 同サーバー内のファイルの存在確認ができません
※説明の為相対パスで書かせていただきます。 ↓本ファイルの設置ディレクトリ /usr/local/apache/htdocs/admin/check.php $img="/home/monky/www/monky.jp/img/1.jpg"; $chk=(file_exists($img))?TRUE:FALSE; ↑とするとエラーがでました。 このPHPとIMGファイルは以下のように、 /usr/local/apache/htdocs/admin/check.php /home/monky/www/monky.jp/img/1.jpg 階層が全然違いますが、同サーバー内です。 fopenやfile_get_contentsなどURLで指定すれば存在確認ができたのですが、動作が遅すぎなので、なんとかfile_existsで行いたいです。 この場合はどうすればうまくいくのでしょうか??
- ベストアンサー
- PHP
- ファイルの取得について
お世話になっております。 ただ今JSPにてファイルの存在チェックを行うものを作成しております。 localhost上では new File("test.txt").exists(); で”true”なのですが、 warファイルを作成後、SunOneに配備すると”false”になってしまいます。 test.txtは同じフォルダー上にあります。 String file_path = application.getRealPath("test.txt"); File test = new File(file_path); out.print(test.exists()); としても”false”になってしまいます。 どのように記述すれば”true”になるのでしょうか? お手数ですが、ご教授願います。
- ベストアンサー
- Java
- web 上のファイルが存在するかチェックする方法
php 5 を使用です。 自分のサーバーのファイルは file_exists($filename) でチェック出来ますが、 web 上のファイルが存在するか確認することは出来るのでしょうか? web 上のファイルというのは 自分のサーバーではないこういうものです。 http://www.example.com/images/pic01.jpg
- ベストアンサー
- PHP
- is_fileでファイルが存在していてもfalse
is_file関数を使って、多数のファイルの有無のチェックを行おうとしています。 ところが、実際に存在していてもfalseを返してきます。 同一サーバ内、別サーバー内も試してみましたが、結果は同じでした。 当然ですが、URLの間違いなどはありません。 まったく原因が思いつきません。 よろしくお願いします。 動作環境:windowsxp,php4.3.8
- ベストアンサー
- PHP
- ファイル存在チェック
日本語サイトと、英語サイトの行き来で: 日本語サイト: http://www.hoge.com/sample/sample.html 英語サイト: http://www.en.hoge.com/sample/sample.html 英語サイトのsampleディレクトリに、日本語サイトのsampleディレクトリと同一ファイルが存在した場合のみ、日本語サイトのそのページに<a href="">English</a>のリンクを表示させたく、 下記の様なPHPを書きました。 <?php $url_en = 'http://www.en.hoge.com'; $current_dir = basename(dirname($url)) ; $filename = basename($_SERVER["PHP_SELF"]); if (file_exists($url_en.'/'.$current_dir.'/'.$filename)) { echo ($url_en.'/'.$current_dir.'/'.$filename); } ?> ファイルが存在するので、echo の部分を出力してくれても良さそうな気がするのですが、 表示されません。 また、echo の部分を<a href=""></a>に入れるには、どの様に書いたら宜しいでしょうか?
- ベストアンサー
- PHP
- CekePHPでfile_exists関数を使う
CakePHP Ver1.3.6で開発をしています。 アクションの中で、画像の存在判定にfile_exists関数を使ったのですが、 2バイトのファイル名のファイルの場合、存在するファイルがfalseになって しまいます。 対象のファイルが存在するときに、 if (file_exists('img/漢字.jpg')) echo 'あります'; else echo 'ありません'; if (file_exists('img/filename.jpg')) echo 'あります'; else echo 'ありません'; このとき、前者は’ありません’、後者は’あります’と表示されます。 app/webrootフォルダにtest.phpを作り、その中で同じ判定をすると、 両方とも’あります’と表示されます。 なぜアクションの中に記述したときのみ、2バイトファイル名を正しく 判定できないのでしょうか?
- ベストアンサー
- PHP
- 別のサーバにあるファイルの存在確認
PHPで、別のサーバーにあるファイルが存在するかしないか確認できる方法、もしくはファンクションなどありますでしょうか? is_file, file_exists を試しましたが、無理でした。 宜しくお願いします。
- ベストアンサー
- PHP
- 別サーバにあるファイル存在チェック
前回の続き的になりますが、サーバは、allow_url_fopen=off の環境です。 色々なサイトを調べてみて、下記コードを発見して、自分なりに修正しましたが、 とにかく重くて仕方ありません。いらないものがあるのでしょうか。 $url = 'http://'.$_SERVER["HTTP_HOST"].$_SERVER['SCRIPT_NAME']; $link_en = (str_replace("www", "www.en", 'http://'.$_SERVER["HTTP_HOST"].$_SERVER['SCRIPT_NAME'] )); function url_exists($link_en) { $arr = parse_url($link_en); $fp = fsockopen($arr['host'], 80); if ($fp == FALSE) return FALSE; $out = ''; $out .= "GET {$arr['path']} HTTP/1.1\r\n"; $out .= "Host: {$arr['host']}\r\n"; $out .= "\r\n"; fwrite($fp, $out); //HTTPコール $res = fgets($fp); //HTTPレスポンス $n = preg_match("/^(HTTP\/[0-9\.]+) ([0-9]+) (.+)/i", $res, $arr); if ($n == 0) return FALSE; $num = $arr[2]; if ($num >= 200 && $num < 400) return TRUE; //HTTP 200-399 ならOK return FALSE; } if (! url_exists($link_en)) { $url_en = "English"; } else { $url_en = '<a href="'.$link_en.'">English</a>'; }
- ベストアンサー
- PHP
お礼
ありがとうございます。 とても参考になりました^^