file_exists() не работает, но когда в браузере указан URL изображения, изображение отображается
file_exists
не работает!! Но когда в браузере указывается URL ($img в коде), отображается изображение. я знаю file_exists()
занимает только жесткий диск, но я мог понять, помогите, пожалуйста..
include_once("../inc/inc_constants.php");
include_once("database/db.php");
include_once("includes/global.php");
ini_set('max_execution_time',300);
$sql="select plan_image_name from mp_new_project_images
where project_code in
(select project_code from mp_new_project
where project_status='Active' ) ";
$sql_result=mysql_query($sql) or die(mysql_error());
while($sqlrow=mysql_fetch_array($sql_result))
{
//HOME is "http://ip address/"
$img = HOME."images/properties/thumbs_400/".$sqlrow['plan_image_name']." ";
if(file_exists($img))
{
$dest =HOME."images/properties/thumbs_400/compress_50/".$sqlrow['plan_image_name']." ";
$dest1=HOME."images/properties/thumbs_400/compress_20/".$sqlrow['plan_image_name']." ";
$dest2=HOME."images/properties/thumbs_400/compress_10/".$sqlrow['plan_image_name']." ";
$size = getimagesize($img);
switch($size['mime']) {
case 'image/jpeg':
$im=imagecreatefromjpeg($img);
imagejpeg($im,$dest,50);
imagejpeg($im,$dest1,20);
imagejpeg($im,$dest2,10);
break;
case 'image/png':
$im = imagecreatefrompng($img);
imagepng($im,$dest,50);
imagepng($im,$dest1,20);
imagepng($im,$dest2,10);
break;
case 'image/gif':
$im = imagecreatefromgif($img);
imagegif($im,$dest,50);
imagegif($im,$dest1,20);
imagegif($im,$dest2,10);
break;
default:
return false;
break;
}
}
}
3 ответа
В функции file_exisits вместо HOME используйте физический путь. физический путь - что-то вроде этого "/var/www/public_html/"
используйте функцию phpinfo(), чтобы узнать физический путь
ИЛИ ЖЕ
использование
dirname(__FILE__) . DIRECTORY_SEPARATOR
ВЕРНО, чтобы получить физический путь динамически.
Имя файла должно быть Path to the file or directory
не IP-адрес
'HOME' constant should be /var/www/html not ('http://url') for example
$img = HOME."images/properties/thumbs_400/".$sqlrow['plan_image_name']." ";
if(file_exists($img)) {
}
Этот код у вас есть:
//HOME is "http://ip address/"
$img = HOME."images/properties/thumbs_400/".$sqlrow['plan_image_name']." ";
if(file_exists($img))
{
Не будет работать. Функция file_exists() ожидает путь к локальной директории. Вы можете использовать fopen() для удаленного пути.
$handle = fopen("http://www.example.com/", "r");
if (!$handle)
{
//no file
}
else
{
// file exists
}
http://php.net/manual/en/function.fopen.php
Я считаю, что это работает с IP-адресами, но будьте осторожны, так как IP-адреса довольно часто используются совместно.