Я не вижу, что это упоминало достаточно часто, но Вы можете все еще реализовывать довольно простые сервисы с WCF, очень похожим на сервисы ASMX. Например:
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class SimpleService
{
[OperationContract]
public string HelloWorld()
{
return "Hello World";
}
}
все еще необходимо зарегистрировать конечную точку в web.config, но это не так плохо.
Устранение многословия разделенных данных, сервис и контракты на операцию имеют большое значение для создания WCF, более управляемого для меня.
file_exists ($ file);
справляется как с относительными, так и с абсолютными путями.
Однако еще полезнее иметь абсолютные пути без жесткого кодирования. Лучший способ сделать это - использовать dirname (__ FILE __)
, которое получает полный путь к каталогу текущего файла в эфирном формате UNIX или Windows. Затем мы можем использовать realpath ()
, который для удобства возвращает false, если файл не существует. Все, что вам нужно сделать, это указать относительный путь из каталога этого файла и собрать все вместе:
$path = dirname(__FILE__) . '/include.php';
if (realpath($path)) {
include($path);
}
file_exists ($ path)
будет проверять абсолютный путь или относительно местоположения скрипта. Если вы хотите проверить относительно корня документа, вы можете попробовать file_exists ("{$ _ SERVER ['DOCUMENT_ROOT']} путь");
Если вам нужна функция, которая будет принимать как относительные, так и абсолютные пути, примерно так должен работать (непроверено):
function check_file($path) {
return ( file_exists($path) || file_exists("{$_SERVER['DOCUMENT_ROOT']}path") );
}
Вы можете использовать realpath
, чтобы проверить, существует ли файл по заданному пути, и получить расширенный путь к этому файлу:
$absPath = realpath($path);
if ($absPath === false) {
// invalid path
}