在我的$plates = explode(';', $plates);
之后,我想在创建新的$dossier
时添加另一个正则表达式(在我的foreach中):
$minus = preg_replace('~[-]~', '', $license_plates);
我该怎么做?
这是我的代码:
public function addLicensePlates(Request $request)
{
$product_id = $request->input('product_id');
$license_plates = $request->input('license_plates');
$plates = preg_replace('~\s+|[.,:;*/_]~', ';', $license_plates); // \s+|[.,:;*/_]
$plates = explode(';', $plates);
foreach($plates as &$plate) {
$dossier = new Dossier;
$dossier->license_plate = trim($plate);
$dossier->product_id = $product_id;
$dossier->save();
}
}
PS:我不想将-
添加到$plates
表达式,但是在爆炸之后。
答案 0 :(得分:0)
我建议按如下方式编辑现有功能:
trim()
稍后删除空值时,在输入字符串上使用preg_replace
str_replace
替换foreach
块中的连字符。请参阅PHP demo:
$license_plates = " WORD-HERE 36-LXD-5";
$plates = preg_replace('~\s+|[.,:;*/_]~', ';', trim($license_plates)); // trim the incoming value
$plates = explode(';', $plates);
foreach($plates as &$plate) {
$license_plate = str_replace('-', '', $plate); // Remove hyphens
echo $license_plate. "\n";
}
输出:WORDHERE
和36LXD5
。