检查字符串是否包含特定单词

Check if a string conains a specific word

我需要检查 URL 地址是否包含一些文本。所以我创建了这段代码。

function url_mapping_name( $urlname ) {
    if (str_contains($urlname, 'amazon.de')) {
    echo "amazon;
}
if (str_contains($urlname, 'brickset')) {
    echo 'brickset';
} else {
    echo 'no URL';
}

我想说的。 在 $urlname 中查找“amazon.de”,如果 URL 包含 amazon.de return amazon,如果 URL 包含 brickset.com return brickset,如果没有找到 return 没有 URL

但是出了点问题,我知道我哪里做错了

谢谢你的帮助。

echo 'amazon';

缺少引号。注意颜色编码的变化。这通常是由于缺少引号引起的。

假设“return”是指让函数将该值赋给一个变量,所有输出字符串应该是

return 'string';

而不是

echo 'string';

一个潜在的额外问题是有 2 个 if 语句而不是使用 else if。如果你确实打算回显字符串而不是 returning 它们,它应该是这样的,所以当它等于 'amazon' 时它也不会回显 'no url'

function url_mapping_name( $urlname ) {
     if (str_contains($urlname, 'amazon')) {
        echo 'amazon';
     } else if (str_contains($urlname, 'brickset')) {
        echo 'brickset';
     } else {
          echo 'no URL';
}

感谢您的帮助,我使用了以下改进,现在可以使用了。

  1. 我修正了收盘价
  2. 将 echo 替换为 return
  3. 使用 elseif - 它 returned "amazonno URL" 之前 @aynber 写道
function url_mapping_name( $urlname ) {
    if (str_contains($urlname, 'amazon.de')) {
    return 'amazon';
}
elseif (str_contains($urlname, 'brickset')) {
    return 'brickset';
} else {
    return 'no URL';
}
}

非常感谢你帮助我。