在PHP 7中,如何显示标题中有特定单词的结果?



我只是想感谢这个社区无数次帮助我走出困境。今天,我试图在Joomla组件中创建一个模板覆盖,仅显示具有"DE"当URL包含&;/de/&;时,在标题中添加。我试过一些方法,但总是一无所获。以下是目前为止的内容:

$keywords = " DE";
$title = JHtml::_('link', $link, $item->title); // Gets Pathway Title
if ((strpos($item, "DE") || strpos($_SERVER['REQUEST_URI'], "de")) == false) {
$item = $displayData;
} else {
$item = array_filter($displayData, function (array $item) use ($keywords) {
return array_key_exists('title', $item) && $item['title'] === $keywords;
});
}

不知道如何获得包含"DE"最后。有人能帮我吗?

您需要单独测试每个strpos()的结果,而不是将它们与||合并。当测试strpos()的结果时,您还必须使用===!==,因为松散比较会将0 == false视为真。

用肯定条件比用否定条件更容易理解。

if (strpos($_SERVER['REQUEST_URI'], "de")) !== false && strpos($item, "DE") !== false) {
$item = array_filter($displayData, function (array $item) use ($keywords) {
return array_key_exists('title', $item) && strpos($item['title'], $keywords) !== false;
});
} else {
$item = $displayData;
}

最新更新