0

私はいたるところを見てきましたが、私のような問題を見つけることができないようです。適切なキーワードをまとめていない可能性があります。しかし、おそらく私の問題を説明するだけでもっと運が良くなるでしょう。

次の小さなコードをまとめました。

    $image_types = array('gif','png','jpg');
    $recent = array();

    foreach($image_types as $image_type) {
        foreach(glob('first/second/*.'.$image_type) as $filename){
            $recent[$filename] = time() - filemtime($filename);
        }
    }

    $recent = array_keys($recent, min($recent));
    $recent_img = $recent[0];

特定のフォルダーを調べて最新の画像を見つけ、後でそれを Web ページに配置することになっています。それが行うことは、最新のイメージ、パス、およびすべてを見つけることです。だから、すべてがそこまで機能しています。echo $recent_img最新の画像を取得した場合src、明らかに次のコードを直後に配置したいと思います<img src="<?php echo $recent_img ?>" />。画像を取得する必要があります。<img>確かに、必要な画像を参照するHTML 内の場所まで、すべてが正常に機能します。ただし、この時点で何かがおかしくなっています。

glob()がパスのみに設定されている場合first、コードは完全に機能します。画像は Web サイトに表示されます。ただし、secondフォルダーを追加すると、Web サイトに画像を表示する以外はすべて実行されます。

そのため、結果の Web サイトにアクセスしてソース コードとイメージ コードを確認すると、次のようになります。

    <img src="first/second/img.jpg" style="display: none !important; visibility: hidden !important; opacity: 0 !important; background-position: 0px 0px;" width="0" height="0">

などに注意しdisplay:none!importantてくださいvisibility:hidden!important。これは、CSS が画像を表示しないようにできる限りのことを行うように設定されているのとほぼ同じです。画像が明らかに 0 x 0 ピクセルではない場合、幅と高さを 0 に設定することを含みます。(念のため: スタイル シートには、プロジェクト内の任意の画像ですべてを 0 や非表示などに設定するインスタンスはありません。)

しかし、私が言ったように、これは、パスにフォルダーの 1 つの部分しかない場合には起こりませんfirst。あるフォルダーのすべての画像を別のフォルダーに入れようとしましたが、それでも問題は残ります。Chrome でその場で CSS 値を編集しましたが、まだ何もありません。

コードが親フォルダー内にあるフォルダー内のファイルを探していることを除いて、何も変更されていないため、これはばかげた問題のようです。さらに、コードは実際には必要なファイルとそのパスを表示するまで機能しますが、ファイル自体は表示しません。

皆さんが見るためのオンライン試用例とTEMPソリューションまたはむしろ「回避策」。

問題を回避するのは嫌いです。それは通常、物事を複雑にしたり、混乱させたりします。まず第一に、この場合は組織の問題です。すべての画像を 1 つのフォルダーにまとめてから、さまざまな種類のサブフォルダーを作成する方がはるかに優れています。ルートに多数の画像フォルダーを配置することは、私にとっては良い考えではありません。第二に、エラーに論理がないように見えるときに「回避策」を使用しなければならないのはばかげているようです。第三に、私は実際に何が起こっているのかを知りたいのですが、これを PHP のバミューダ トライアングルに変えたくはありません。ですから、私の TEMP ソリューションをあきらめないでください。この素晴らしい場所の相乗効果を続けてください。どこかの時点で解決策にたどり着くことは間違いありません。

いずれにせよ、おそらくすでに推測されている「回避策」は、ルートであるフォルダーsecondと同じディレクトリにフォルダーを配置することです。firstしたがって、これはその特定の問題を解決するはずです。しかし、あなたが私に尋ねるならば、それは寛大な解決策ではありません.

問題のオンライン トライアルをアップロードするように依頼されたので、アップロードしました>>HERE<< . first/second/と で最新の画像を探している同じコードを見ることができ、first/一方が驚くほどうまく機能し、もう一方が不思議なことにフロップすることがわかります!

質問: ふと思いつきました。パス名の長さと関係があるのでしょうか? つまりfirst/、OKですが、first/second/長すぎますか? パスからの情報の取得が成功したことを考慮すると、あまり意味がありません。問題はむしろ HTML の結果の側にありますが、それ以来、secondフォルダーをルートに配置して 10- を与えました。レター名と問題が再現されました。ただし、これは WAMP localhost でのみ発生しました。すべてをオンラインにアップロードしたとき、長さは問題ではないようでした。ただし、オンラインでも、私のLINKからわかるように、最初の問題が残っています。

4

1 に答える 1

0

jquery を使用して、src の取得と更新を試すことができます。

$.get('image.php').success(function(src) {
    $('#myimg').attr('src',src);
});
于 2013-03-03T07:21:54.630 に答える