我需要检查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';
}
我想说。查找";amazon.de;在$urlname中,如果URL包含amazon.de,则返回amazon;如果URL包含brickset.com,则返回brickset;如果未找到,则返回无URL
但有些地方出了问题,我确实知道我在哪里犯了错误
谢谢你帮我。
行
echo"amazon";
缺少一个引号。注意颜色编码的变化。这通常是由于缺少引号造成的。
假设由";返回";你的意思是,让函数将该值分配给一个变量,所有的输出字符串都应该是
返回'string';
而不是
echo'string';
一个潜在的额外问题是使用2 if语句而不是使用else-if。如果你确实想回显字符串而不是返回它们,它应该是这样的,所以当它等于"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';
}
感谢您的帮助,我使用了以下改进,现在可以使用了。
- 我修复了结束引号
- 用回波替换回波
- 使用elseif-它返回";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';
}
}
非常感谢你帮助我。