1

これのタイトルが正しいかどうかはわかりませんが、ここに私の問題があります:私は次のように画像のURLを保持するテーブルを持っています:

img/folder/imagename.jpg

各フォルダの各画像のサムネイルを作成したので、それらを表示したい場合は、テーブルでループを実行してすべての URL を返しますが、「folder/」の後と前に「thumbs」という単語を追加する必要があります「imagename.jpg」...「folder」と「imagename」の名前の長さが明らかに異なるため、数えることはできません..私が把握できる唯一のことは、最後の「/」文字を調べることですそこに挿入し、その後に「imagename.jpg」を追加すると、最終結果は次のようになります。

img/folder/thumbs/imagename.jpg
4

2 に答える 2

4

パスを「より深い」パスに置き換えるだけです。

$path = str_replace('img/folder/', 'img/folder/thumbs/', $path);

これを行うには他にも多くの方法がありますが、IMHO this one はそれが何をするかについて完全に明確です。理論的には、普遍的には機能しませんが (何らかの理由でパスに複数の出現が含まれている場合img/folder/)、そこには行かないようにしましょう。

于 2013-02-24T22:22:51.643 に答える
1

あなたもすることができます

$pathparts =  explode("/",$path);

次に、$ pathparts配列を使用して、パスを再構築します。パスの操作をより細かく制御したい場合に使用しますが、負荷が大きい場合はあまり効率的ではありません。

echo $pathparts[0]."/".$pathparts[1]."/thumbs/".$pathparts[2];

// aditionそして、データベースとスクリプトを更新しないのはなぜですか。imagename.jpgのみを保存してから、スクリプトの呼び出しの最初にdefine

define("IMGPATH", "img/folder/");
define("THUMBPATH", "img/folder/thumbs/");

それからそれを呼びます

 <?= IMGPATH."imagename.jpg" ?>
<?= THUMBPATH."imagename.jpg" ?>
于 2013-02-24T22:56:07.877 に答える