проблема с поиском файла с php - PullRequest
0 голосов
/ 22 июля 2009

У меня есть база данных, которая привязана к серверу картинок. Если картинка не загружена, я хочу разместить на ее месте «недоступную» фотографию. Каждая картинка в числовом порядке на основе первичного ключа из базы данных $row['Item_ID']. Мой скрипт ниже ищет файл, но не может найти какие-либо картинки, поэтому он использует «недоступно» для всего. Я не уверен, могу ли я использовать двойные кавычки в первой строке, когда я пишу '$row["Item_ID"]'.

$img_var = '$row["Item_ID"]';
$item_img = '/item_images/$img_var.jpg';         
if (!file_exists($item_img))        
{ $row['Item_ID'] = 'unavailable'; }     
else { $row['Item_ID'] = $row['Item_ID']; }

Ответы [ 4 ]

5 голосов
/ 22 июля 2009

Ваши первые две строки без необходимости выполняют (или пытаются выполнить) замену строки.

Строки, разделенные одинарными кавычками, не интерполируются для переменных или escape-последовательностей.

Но на самом деле вы создаете слишком сложный процесс - просто объедините путь к файлу в одну строку и при необходимости переключитесь на свой недоступный образ.

$item_img = '/item_images/' . $row["Item_ID"] . '.jpg';
if ( !file_exists( $item_img ) )
{
  $item_img = '/item_images/unavailable.jpg';
}
2 голосов
/ 22 июля 2009

Это

$img_var = '$row["Item_ID"]';
$item_img = '/item_images/$img_var.jpg';

нужно прочитать

$img_var = $row["Item_ID"];
$item_img = "/item_images/$img_var.jpg";

или даже

$item_img = "/item_images/{$row["Item_ID"]}.jpg";

Когда он находится в одинарных кавычках, PHP не разрешает $ img_var до его значения, он просто использует string "$ img_var" .

2 голосов
/ 22 июля 2009

Одинарные кавычки не интерполируются.

0 голосов
/ 22 июля 2009
$item_img = '/item_images/'.$row['Item_ID'].'.jpg';
if(!file_exists($path_to_root.$item_img)) {
    $item_img = '/item_images/unavailable.jpg';
} 

Обратите внимание на $path_to_root. Ваш корень HTML не совпадает с вашим корнем PHP (если ваш сервер специально не настроен таким образом ... мой нет), поэтому вы должны убедиться, что пути правильные. Мне нравится размещать PHP-файл в базе моего сайта с define('ROOT', dirname(__FILE__));, и тогда вы можете просто сделать ROOT.'/path/to/whatever.jpg'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...