-1

私は与えられたテーブル構造を持っています

     |   ID    |             IMAGE                | 
     |   01    |           123.jpg                |    
     |   02    |  http://localhost/test/logo.jpg  |    
     |   03    |  http://localhost/test/pic.jpg   |    
     |   04    |           image.png              |    

私は以下に示すように画像を取得しています

$qry="SELECT IMAGE FROM `table`";
$res=mysql_query($qry);
while($row=mysql_fetch_row($res)){
    if($row[0])
    {
       $pic="http://localhost/test/".$row[0];
    }
    else
    {
        $pic="";
    }
    echo $pic;
}

しかし、02,03画像では正しく機能しません

4

4 に答える 4

2

以下は、指定された値がまだ「http://」または「https://」で始まっていない場合にのみ、完全な URL を先頭に追加します。

if($row[0])
{
    if (stripos($pic, "http://") === false && stripos($pic, "https://") === false)
        $pic="http://localhost/test/".$row[0];
    else
        $pic=$row[0];
}
else
{
    $pic="";
}
于 2012-05-16T13:28:00.860 に答える
0

テーブルに画像を保存する標準的な方法がないようです。これらが唯一の形式である場合は、画像文字列をまとめる前に何らかのチェックを追加する必要があります。

while($row=mysql_fetch_row($res)){
if($row[0])
   {
   if
   $pic = (strpos($row[0], "//") === false) ? "http://localhost/test/".$row[0]: $row[0];
   }
   else
   {
   $pic="";
   }
echo $pic;
}
于 2012-05-16T13:28:26.833 に答える
-1

当然、画像 02 と 03 の次の URL を取得します。

http://localhost/test/http://localhost/test/logo.jpg
http://localhost/test/http://localhost/test/pic.jpg

これは明らかに悪い形です。これをコードに追加したいかもしれません...

if($row[0])
   {
   if (strpos($row[0],'/')) {
     $pic=$row[0];
   } else {
   $pic="http://localhost/test/".$row[0];
   }
} else ...
于 2012-05-16T13:29:29.000 に答える
-1

私はあなたのコードをから変更すると思います

 $pic="http://localhost/test/".$row[0];

 $pic="http://localhost/test/".$row[1];

画像列が $row[1] であるため

于 2012-05-16T13:27:23.253 に答える