Проверьте, существует ли файл PDF с совпадающим именем, дайте ссылку на него

Я работаю над сайтом по недвижимости. Мы составляем списки недвижимости, используя номера MLS, и некоторые из этих списков снабжены брошюрами в формате PDF. Я хотел бы проверить, существует ли брошюра для листинга - файл PDF "mls#.pdf", с номером MLS, соответствующим листингу. Если есть PDF, я хочу дать ссылку на него. В противном случае ссылка должна вести на страницу MLS для этого списка.

Я пробовал этот код ниже, но я не знаю, как настроить его для поиска/ссылки на имя файла, которое соответствует списку. (Второе эхо тоже явно неверно, я не знаю, как таким образом переходить туда и обратно с php).

<?php
$inc_file = "pdf/$MLS_ACCT.pdf";
if (file_exists($inc_file)) {
echo '<a href="pdf/$MLS_ACCT.pdf">Click here for Brochure - Open PDF at 100%</a>';}
else {
echo '<a href="property-search-results.php?MLS_ACCT=<?php echo $MLS_ACCT ;?>" target="_top">Further Details >></a>'; }
?>

person apol    schedule 09.04.2014    source источник


Ответы (1)


Ваш код, который проверяет, существует ли файл, выглядит хорошо. Вот краткое изложение того, как PHP анализирует переменные в строках:

Существует несколько способов использования переменных в строках:

$name = "Jeff";

// parsing in double quotes
$string = "My name is $name";

// you can also use curly braces for better readability
$string = "My name is {$name}";

// or you can concatenate
$string = "My name is " . $name;

В одинарных кавычках работает только метод конкатенации. Вы должны сделать что-то вроде этого:

echo '<a href="pdf/' . $MLS_ACCT . '.pdf">Click here for Brochure - Open PDF at 100%</a>';

и у вас должна быть правильная печать переменной.

Наконец, в вашем последнем операторе эха у вас есть <?php ?> в вашей строке. Это будет напечатано буквально - вы используете их только при переходе на PHP с чистого HTML. Вместо этого используйте тот же метод конкатенации строк, который описан выше.

person Jeff    schedule 09.04.2014