如果 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>
我个人不喜欢这个,因为它读起来有些混乱。
如果存在完全 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>
我个人不喜欢这个,因为它读起来有些混乱。