如果 url 与 php 完全匹配,请执行操作

Do something if url is exact match in php

如果存在完全 url 匹配,我想 运行 一些代码。

我目前有这个:

//Returns 'https://www.someurl.com'
$browserUrl  = curPageURL();

现在我有一行是为了在 $browserUrl 的基础上构建一个新的 url。为此,我创建了这个:

<?php
   //Gets the url of a specific page
   $page = icl_object_id(2880, 'page', true);
   $url = get_permalink($page);
   //Cplits the url into useful parts for rebuilding
   $parts = explode("/", $url);
?>

//Here I am rebuilding the url based on the url I retrieved with the code above
<a href="<?php echo curPageURL() . $parts[4] . '#sendMessage'; ?>"><?php _e('Send us an Email','optionsBlock'); ?></a>

但是,通过使用三元运算符,我实际上想做的是:

<a href="<?php echo curPageURL() . $browserUrl == 'https://www.someurl.com' ? $parts[3] : $parts[4] . '#sendMessage'; ?>"><?php _e('Send us an Email','optionsBlock'); ?></a>

但这没有按预期工作,因为它没有获取直接 url 匹配项。这是正确的做法吗?

如果你想要使用$parts[3]$parts[4]取决于$browserUrl检查,并且三元运算符是问题,那么我建议创建一个新变量,比方说 $part,保存三元运算符的结果,然后在串联中使用它,如下所示:

<?php
   //Gets the url of a specific page
   $page = icl_object_id(2880, 'page', true);
   $url = get_permalink($page);
   //Cplits the url into useful parts for rebuilding
   $parts = explode("/", $url);
   $part = $browserUrl == 'https://www.someurl.com' ? $parts[3] : $parts[4];
?>

//Here I am rebuilding the url based on the url I retrieved with the code above
<a href="<?php echo curPageURL() . "{$part}#sendMessage"; ?>"><?php _e('Send us an Email','optionsBlock'); ?></a>

或者您可以在串联中使用三元运算符,但需要将其括在方括号中才能正常工作,如下所示:

<a href="<?php echo curPageURL() . ($browserUrl == 'https://www.someurl.com' ? $parts[3] : $parts[4]) . '#sendMessage'; ?>"><?php _e('Send us an Email','optionsBlock'); ?></a>

我个人不喜欢这个,因为它读起来有些混乱。