如何查找网址是否存在?即导致'页面未找到'错误的网址。例如:发现测试/测试页面是否存在
我的意思是检查网站上是否确实存在给定的相对路径或完整路径,否则会导致页面找不到错误
答案 0 :(得分:7)
您可以使用menu_valid_path()函数。返回TRUE或FALSE基于1.菜单路径是否存在以及2.当前用户是否有权查看该项目。
你这样称呼它:
$item_exists = menu_valid_path(array('link_path' => $some_path));
$ some_path是您要测试的路径。
答案 1 :(得分:4)
如果您只想知道是否存在别名,请使用:
$path_exist = drupal_lookup_path('alias',$path);
但是如果您想知道系统路径或别名之一是否存在,请使用:
$path_exist = drupal_lookup_path('alias',$path) || drupal_lookup_path('source',$path);
答案 2 :(得分:2)
Refer to this URL for Drupal 8.
You can use:
\Drupal::service('path.alias_storage')->aliasExists('current_path', 'en')
And it will load "1" if alias exists in system.
答案 3 :(得分:1)
您也可以使用请求页面:http://api.drupal.org/api/function/drupal_http_request/6
如果出错,您将不会为空$ result->错误。
答案 4 :(得分:0)
从Drupal 8.8开始,Path Alias是一个内容实体。 所以我们可以使用
$pathStorage = \Drupal::entityTypeManager()->getStorage('path_alias');
$aliases = $pathStorage->loadByProperties(['alias' => $alias]);
// or
// $pathStorage->loadByProperties(['path' => $path]);
$existingAlias = count($aliases) > 0;