我有一个给定的表结构
| 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图像无法正常工作
答案 0 :(得分:2)
当给定值尚未以“http://”或“https://”开头时,以下内容仅在完整网址前面加上:
if($row[0])
{
if (stripos($pic, "http://") === false && stripos($pic, "https://") === false)
$pic="http://localhost/test/".$row[0];
else
$pic=$row[0];
}
else
{
$pic="";
}
答案 1 :(得分: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;
}
答案 2 :(得分:-1)
我认为您从
更改了代码 $pic="http://localhost/test/".$row[0];
到
$pic="http://localhost/test/".$row[1];
因为您的图片列是$ row [1]
答案 3 :(得分:-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 ...