要检查产品尺寸,我需要搜索一个简单的字符串,如:32sdfsjkndgfjkdgndkj24 020l dsfsfsd
使用strpos查找字符串中的值,以查找不同的大小。
我目前的代码是:
if (strpos($size, "1875cl") || strpos($size, "01875l")) {
$size = '18,75cl';
} elseif (strpos($size, "20cl") || strpos($size, "020l") || strpos($size, "02l")) {
$size = '20cl';
}
问题在于我使用if语句。
第一个如果工作得很好。然后当elseif检查字符串中的另一个值时 - 也使用strpos脚本返回一个致命错误,说明函数未定义:
致命错误:在.....
中调用未定义的函数strpos()答案 0 :(得分:0)
这与你的工作方式相同,唯一可行的方法是覆盖数据或$size
变量中存在错误的数据。
您可以使用$size
更多地清理preg_replace( '/[^a-zA-Z0-9]/', '', $size );
变量,如果您使用下面的代码,则可以使用名称保存$correctedSize
变量。
$prodNames = array( '\x0D\x0D\x0D \n\rkajshdfsajkdhaksjd1875cladsas', '۞ ۩ εїз Ƹ̵̡Ӝ̵̨̄kajshdfsajkdhaksjd1875cladsas', 'kajshdfsajkdhaksjd20clcladsas','02lkajshdfsajkdhaksjdadsas', 'kajshdfsajkdhaksjd1875cladsas', 'kajshdfsajkdhaksjd1875cladsas', 'kajshdfsajkdhaksjd20clcladsas','02lkajshdfsajkdhaksjdadsas' );
foreach ( $prodNames as $prodNameRaw ) {
$correctedSize = 0;
$prodName = preg_replace( '/[^a-zA-Z0-9]/', '', $prodNameRaw );
if ( strstr( $prodName, '1875cl' ) || strstr( $prodName, '01875l' ) ) {
$correctedSize = '18,75cl';
} elseif ( strstr( $prodName, '20cl' ) || strstr( $prodName, '020l' ) || strstr( $prodName, '02l' ) ) {
$correctedSize = '20cl';
}
}