お世話になります。
$IMG_URL = "http://hoge.hoge/";
$test = 1;
$logo_url = $IMG_URL."logo/".$test."jpg";
if(file_exists($logo_url)){
$var = "あるよ!";
}else{
$var = "ないよ!";
}
という形で画像ファイルが存在するかを調べているのですが、PHPに直接記述した場合動作し、functionの中に入れると動作しなくなるのはなぜでしょうか?
function pict($test){
$IMG_URL = "http://hoge.hoge/";
$test = 1;
$logo_url = $IMG_URL."logo/".$test."jpg";
if(file_exists($logo_url)){
$var = "あるよ!";
}else{
$var = "ないよ!";
}
return $var;
}
上記のfunction内に入れた場合、returnの値が「ないよ!」になってしまうのです。
どうぞよろしくお願い致します。
No.2ベストアンサー
- 回答日時:
file_existsはHTTP経由では使えません。
ステータスコードを調べる手段が最も適切なのではないでしょうか。function url_exists($url) {
$h = (array)@get_headers($url);
return $h[0] && !strpos($h[0], '404');
}
ご回答ありがとう御座いました。
上記の方法でIf分岐が行えました。大変助かりました。
しかしなぜ同じ記述で動く箇所と動かない箇所があるのかがいまいちまだ把握できませんが…無事動いてなによりです。
functionの中ではHTTP経由になってしまうとかなのでしょうか?
No.1
- 回答日時:
function版の
> $test = 1;
は何のためにあるのでしょうか?
具体的にどんな呼び出しをしたのでしょうか?
このプログラムだと"1jpg"というファイルの存在を探そうとしますが、それで正しいのですか?(1.jpg ではありません)
プログラムに間違いがあるか、ここに書いたときに間違えたのか、まずははっきりさせましょう。
表示させる等、$logo_url が実際にはどんな文字列になっているかを調べ、それが期待したものかどうかを調べましょう。可能はら、本体に記述したものと、functionに記述したもので違いが無いか調べましょう。
ここに書かれた内容だと、同じ hogehoge/logo/1jpg の存在を調べようとし、同じ結果になると思います。
この回答への補足
記述間違い失礼しました。
function版の「$test=1;」は不要で、echoした「$logo_url」(http://hogehoge/logo/1.jpg)をブラウザに貼り付けると画像が表示されるのですが…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript 正規表現について質問です。条件に合う場合はtrueを返したい 3 2022/10/06 23:02
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript gasについて 1 2022/05/31 21:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETからVBAマクロ(引数)を呼...
-
PHP、ヒアドキュメント内でのIF...
-
ExcelVBAで部分一致(*)をしたい
-
PHPプログラム上で「URLを直接...
-
可変変数にアロー演算子を使いたい
-
VBA コレクションに2次元配列...
-
どういうプログラムを関数化を...
-
構造体の入れ子が構造体の場合...
-
try~catch
-
ナベアツプログラム(3の倍数...
-
DTOとEntityの差は何ですか。
-
「取得先」という表現について
-
バッチファイルでpingの結果を...
-
Yahoo! JAPAN IDを新規取得でき...
-
WordでExcelデータを差込...
-
format関数について
-
switch()文で値の大小比較
-
Dosブロンプトでtabを出力したい
-
EXCEL、マクロ-改ページ行番号...
-
【C#】DataGridViewの最大列数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Let's Encryptで自動更新がされ...
-
VBA コレクションに2次元配列...
-
VB.NETからVBAマクロ(引数)を呼...
-
エラーの理由が分りません。Pri...
-
PHP、ヒアドキュメント内でのIF...
-
PHPでの画像の形式の変換
-
可変変数にアロー演算子を使いたい
-
CSVファイルをブラウザのキャッ...
-
次のhtml・cssでspan内の文字を...
-
VB.NETSystem.Xml 要素数を得る...
-
どういうプログラムを関数化を...
-
ExcelVBAで部分一致(*)をしたい
-
PHPの変数値をリンクさせたい
-
PHPプログラム上で「URLを直接...
-
protectedなのにアクセスできな...
-
ASPのResponse.WriteをPHPでは...
-
file_existsが動作しない
-
PHPでXMLの置換 replaceData
-
[C#]Arraylistに追加した構造体...
-
[C++]std:mapの扱いを教えて頂...
おすすめ情報