我想在网址存在/活动时添加图片。我自己尝试过很多东西,但是没有成功。
我想要的是:如果url1存在则显示image1否则,如果url2存在则显示image2否则等等。
foreach ($urlsArray as $url) {
if(@fopen($url,'r')){
echo 'Exist';
}
else {
echo 'Doesnt exist';
}
}
对不起,我必须更加具体!
$urlArray = array(
'http://www.domain.com/page1.php' => 'images/image1.jpg',
'http://www.domain.com/page2.php' => 'images/image2.jpg',
etc);
foreach($urlsArray as $url){
if(@fopen($url,'r')){
echo '<img src="$image" />' /* if url1 exist show image1, etc */
}else{
echo '';
}
}
如何让它发挥作用?
答案 0 :(得分:1)
假设$url = path/to/pic/pic.gif
- 意味着url实际上导致要显示的图片
foreach ($urlsArray as $url) {
if(@fopen($url,'r')){
echo '<img src="'.$url.'" />';
}
}
已更新(使用$ key =&gt; $ fore for foreach):
foreach ($urlsArray as $url => $img) {
if(@fopen($url,'r')){
echo '<img src="'.$img.'" />';
}
}
答案 1 :(得分:0)
也许这会有所帮助?:
<?php
foreach($urlsArray as $url){
if(!empty(file_get_contents($url))){
echo "exist";
}else{
echo "Doesn\'t exist";
}
}
?>
答案 2 :(得分:0)
就我所知和过去的经验fopen
而言,外部网址要求allow_url_fopen
设置为开启。通常,它将作为部署环境中的安全措施禁用,建议使用某些替代方法(如cURL)检查URL是否存在,并返回http响应代码。然后根据响应代码继续显示或不显示图像。
示例代码:
$url_exists_1 = check_url($url1);
if ($url_exists_1) {
// show image 1;
}
else {
// don't;
}
function check_url($url='') {
if (!function_exists('curl_init')) {
die("Please enable curl");
}
$curl_options_array = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_FOLLOWLOCATION => TRUE,
CURLOPT_MAXREDIRS => 5
);
if ($url != '') {
$ch = curl_init();
curl_setopt_array($ch, $curl_options_array);
curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($code == 200) {
return TRUE;
}
else {
return FALSE;
}
}
else {
return FALSE;
}
}