Где в исходном коде он использовал $sku_digits
, это просто количество цифр (оно было преобразовано в {5}
в регулярном выражении). Вместо этого вам нужно изменить это значение на {4,10}
, чтобы указать желаемое количество символов.
Он также проверяет первый ди git, если он равен 0, и удаляет только этот первый ди git если это 0.
Я также изменил жестко запрограммированные пробелы на \b
, что является границей слова, поэтому он будет совпадать с ,
сразу после него (как в примере)
function my_get_sku( $product_name = "" ) {
$sku = 0; // if no SKU is found, return 0
preg_match( '/\b[\d]{4,10}\b/', $product_name, $match );
if ( $match ) {
$sku = trim( $match[0] );
if ( $sku[0] == '0' ){
$sku = substr($sku, 1);
}
}
return $sku;
}
echo my_get_sku("Lego 2 creator 0102704, Car V1 cool");
дает (игнорирует 2 раньше, так как это короткая позиция)
102704