如果url在php

时间:2016-05-16 18:13:06

标签: php wordpress wpml

如果有精确的网址匹配,我想运行一些代码。

我目前有这个:

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

现在我有一行用于构建基于$browserUrl的新网址。为此,我创造了这个:

<?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>

但是这没有按预期工作,因为它没有获得直接的网址匹配。这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

如果你想要的是使用$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>

就我个人而言,我不喜欢这样,因为阅读时有些令人困惑。