PHP файл существует не работает? - PullRequest
1 голос
/ 22 августа 2011

Я хотел бы проверить, существует ли страница.Мой файл - article.php.URL-адрес статьи article.php? Id = 1 article.php? Id = 2 и т. Д. Но когда я проверяю это таким образом, он не работает:

$filecheck = "article.php?id=$id";
if (file_exists($filecheck)) {
echo "This article exists.";
} else {
echo "Sorry this article does not exist.";
}

Но он всегда возвращает "Извините эту статьюне существует."Как я мог это исправить?

Ответы [ 5 ]

4 голосов
/ 22 августа 2011

Не передавайте ей строку запроса.

$filecheck = 'article.php';
1 голос
/ 22 августа 2011

Ну, причина, по которой он не находит файл, в том, что в нем есть строка запроса.Если вы случайно получаете эти данные из другого источника и не можете контролировать, отправляется ли с ним строка запроса, вы можете сделать это:

$yourFile = 'article.php?id=$id'; // Or wherever you get this value from
$yourFile = strstr( $yourFile , '?' , TRUE );

echo $yourFile; // now has a value of article.php
1 голос
/ 22 августа 2011

Файл "article.php? Id = $ id" не будет существовать, поскольку он не является физическим файлом.

Я предполагаю, что вы используете $ id, чтобы найти статью, которая существует вбаза данных.Если это так, то функция file_exists - это не то, что вам нужно.

Вам нужно будет написать быстрый оператор MySQL, чтобы проверить, существует ли статья, а затем перейти оттуда.Возможно, что-то вроде этого:

$query = "SELECT * FROM articles WHERE id='$id'";
$result = mysql_query($query);

// Check if result is there (ie article exists)
if ($result) {
    echo "This article exists.";
} else {
    echo "Sorry this article does not exist.";
}

Надеюсь, это поможет.Дайте мне знать, если вам нужно что-нибудь еще.

1 голос
/ 22 августа 2011

Если это физическая страница, а не динамически создаваемый контент, используйте этот способ:

$filecheck = "article_1.php"

if (file_exists($filecheck)) {
echo "This article exists.";
} else {
echo "Sorry this article does not exist.";
}

В противном случае проверьте идентификатор, находится ли он в БД.

1 голос
/ 22 августа 2011

Это потому, что нет файла с именем: article.php? Id = $ id

Возможно, существует файл с именем: article.php: :)

...