0

这是我第一次玩 PHP,我在制作基本的 if/then 语句时遇到了麻烦。我想做类似的事情

如果文件存在,则显示 html 代码,否则显示不同的 html 代码。

这是我目前所处的位置——

<?php
if ( file_exists('pdf/'.'htmlspecialchars($_POST['apt'], ENT_COMPAT)'.'.pdf') {
    echo "the file exists";
}  else {
    echo "file does not exist";
}
?>

我认为这里的问题是我如何写

file_exists('pdf/'.'htmlspecialchars($_POST['apt'], ENT_COMPAT)'.'.pdf')

想法非常感谢!

4

4 回答 4

3

尝试:

if (file_exists('pdf/' . htmlspecialchars($_POST['apt'], ENT_COMPAT) . '.pdf')) {
    echo "the file exists";
} else {
    echo "file does not exist";
}

你在打电话之前有一些报价htmlspecialchars()。当你调用一个函数时,你不需要引号。另请参阅您没有关闭括号。

于 2012-12-13T08:18:19.667 回答
2

你有引号问题:

file_exists('pdf/'.htmlspecialchars($_POST['apt'], ENT_COMPAT).'.pdf')
于 2012-12-13T08:18:46.820 回答
2

有两个问题。首先,您在if条件末尾缺少一个右括号,其次,您在不应该使用引号的地方加上对htmlspecialchars.

正确的代码是:

if (file_exists('pdf/'.htmlspecialchars($_POST['apt'], ENT_COMPAT).'.pdf')) {
    echo "the file exists";
}  else {
    echo "file does not exist";
}
于 2012-12-13T08:20:15.393 回答
1

你不需要 htmlspecialchars。它将不正确的字符转换为更不正确的字符。例如'变成 3 9; (没有空格)

于 2012-12-13T08:18:36.097 回答