我有一个显示一些上传图片的主页。
我从数据库中获取它并使用strpos()
来检查由于目录问题导致的URL,并且它运行良好:
if(strpos($row['cImage'],"http://") === FALSE){
echo "<img src='serintercement/".$row['cImage']."' style='width: 107px; height:102px;' />";
}else{
echo "<img src='".$row['cImage']."' style='width: 107px; height:102px;' />";
}
我需要在显示点击图像的页面中使用相同的逻辑,但它有一个变量,我正在努力解决这个问题,因为它是一种不同的写法:
<img src='<?php echo $resultData->cImage; ?>'/>
我无法修复目录问题。如何对第二个代码使用strpos()
?
答案 0 :(得分:1)
您应该能够类似地检查路径 - 只要设置了对象的属性并且可以使用字符串strpos()。
if(strpos($resultData->cImage,"http://") === FALSE){
echo "<img src='serintercement/".$resultData->cImage."' />";
}else{
echo "<img src='".$resultData->cImage."' />";
}
答案 1 :(得分:1)
你可以这样做。
if(strpos($resultData->cImage,"http://") === FALSE){
echo "<img src='serintercement/".$resultData->cImage."' style='width: 107px; height:102px;' />";
}else{
echo "<img src='".$resultData->cImage."' style='width: 107px; height:102px;' />";
}
更好的选择是你可以定义这样的函数并调用它
checkImage($row['cImage']);//to be called in your first page
checkImage($resultData->cImage);//to be called in your second page
function checkImage($image)
{
if(strpos($image,"http://") === FALSE){
echo "<img src='serintercement/".$image."' style='width: 107px; height:102px;' />";
}else{
echo "<img src='".$image."' style='width: 107px; height:102px;' />";
}
}
答案 2 :(得分:0)
如果这些cImage
字符串来自您的数据库,您可以在查询调用中更正它们。
例如,如果您使用的是MySQL,则可以使用LOCATE()
AND CONCAT()
来准备数据,如下所示:
SELECT
IF(LOCATE('http',`cImage`)!=1,CONCAT('serintercement/',`cImage`),`cImage`) `new_cImage`
FROM ...
将条件流程移动到您的查询中,将使您的“显示”代码更加流畅,因为所有准备工作都是提前完成的。
除此之外,你可以通过不重复图像变量之前和之后的html部分来使你的代码更干!...
这是一个内联条件的回声(不是每个人都喜欢这种风格):
echo "<img src=\"",(strpos($resultData->cImage,"http")===0?'':'serintercement/'),"{$resultData->cImage}\" style=\"width:107px;height:102px;\" />\n";
这是一个单独的条件:
echo "<img src=\"";
if(strpos($resultData->cImage,"http")!==0){
echo 'serintercement/'
}
echo "{$resultData->cImage}\" style=\"width:107px;height:102px;\" />\n";
如果你必须在同一个脚本中多次这样做,这是一个函数调用:
function fixPath($img){
if(strpos($img,"http")===0){
return $img;
}
return "serintercement/$img";
}
echo "<img src=\"",fixPath($resultData->cImage),"\" style=\"width:107px;height:102px;\" />\n";
请注意,我只检查http
并且我非常准确地检查它是否来自字符串中的第一个位置。在所有这些替代方案中,我所提出的观点是DRYness(这是所有程序员的典型追求)。您如何选择实施它取决于您的个人偏好。