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

Я не вижу, что это упоминало достаточно часто, но Вы можете все еще реализовывать довольно простые сервисы с WCF, очень похожим на сервисы ASMX. Например:

[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class SimpleService
{
    [OperationContract]
    public string HelloWorld()
    {
        return "Hello World";
    }

}

все еще необходимо зарегистрировать конечную точку в web.config, но это не так плохо.

Устранение многословия разделенных данных, сервис и контракты на операцию имеют большое значение для создания WCF, более управляемого для меня.

10
задан uji 13 November 2009 в 16:57
поделиться

3 ответа

file_exists ($ file); справляется как с относительными, так и с абсолютными путями.

Однако еще полезнее иметь абсолютные пути без жесткого кодирования. Лучший способ сделать это - использовать dirname (__ FILE __) , которое получает полный путь к каталогу текущего файла в эфирном формате UNIX или Windows. Затем мы можем использовать realpath () , который для удобства возвращает false, если файл не существует. Все, что вам нужно сделать, это указать относительный путь из каталога этого файла и собрать все вместе:

$path = dirname(__FILE__) . '/include.php';
if (realpath($path)) {
    include($path);
}
26
ответ дан 3 December 2019 в 14:24
поделиться

file_exists ($ path) будет проверять абсолютный путь или относительно местоположения скрипта. Если вы хотите проверить относительно корня документа, вы можете попробовать file_exists ("{$ _ SERVER ['DOCUMENT_ROOT']} путь");

Если вам нужна функция, которая будет принимать как относительные, так и абсолютные пути, примерно так должен работать (непроверено):

function check_file($path) {
    return ( file_exists($path) || file_exists("{$_SERVER['DOCUMENT_ROOT']}path") );
}
4
ответ дан 3 December 2019 в 14:24
поделиться

Вы можете использовать realpath , чтобы проверить, существует ли файл по заданному пути, и получить расширенный путь к этому файлу:

$absPath = realpath($path);
if ($absPath === false) {
    // invalid path
}
4
ответ дан 3 December 2019 в 14:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: