Sorunlu dosyayı w / php bulma

4 Cevap php

Ben resim bir sunucuya bağlı bir veritabanı var. Bir pic yükledi değil durumda ben onun yerine bir "kullanılamaz" fotoğraf yerleştirmek istiyorum. Her pic veritabanı $row['Item_ID'] gelen birincil anahtar dayalı sayısal sırayla değildir. Dosyası arar ama aşağıda benim komut dosyası herhangi bir resim bulamıyorum, bu yüzden her şey için "kullanılamaz" kullanır. Ben '$row["Item_ID"]' yazarken ben ilk satıra çift tırnak kullanabilirsiniz emin değilim.

$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 Cevap

İlk iki satır gereksiz dize değiştirme sahne (ya da yerine-teşebbüs) vardır.

Tek alıntı dizelerle değişkenler için interpolasyon veya dizileri kaçış değildir.

Ama gerçekten, bu aşırı karmaşık emaking konum - sadece tek bir hat üzerinde dosya yolunu birleştirmek ve ve başarısız-üzerinden kullanılamaz görüntü zaman gerekiyor.

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

Tek tırnak interpolasyon değildir.

Bu

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

okumak gerekiyor

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

ya da

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

Bu tek-tırnak içinde olduğunda, PHP değerine $img_var çözmez, sadece kullandığı string "$img_var".

$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 Not. (Sunucu özellikle bu şekilde yapılandırılmış sürece benim değil ...) HTML kök PHP root olarak sames değil, bu yüzden yolları doğru olduğundan emin olmak gerekir. I define('ROOT', dirname(__FILE__)); ile benim sitenin dibinde oturan bir PHP dosyası yerleştirmek istiyorum ve o zaman sadece ROOT.'/path/to/whatever.jpg' yapabilirsiniz.