我在使用新号码替换字符串中的数字时遇到问题。描述在这里。问题是,当我上传文件时,它会将文件名保存在已找到文件的同一目录中。因此,服务器将附加(1)
的文件名保存到文件名。
$file_name = 'Haller(1).jpg';
这是我放在这里的示例字符串。 现在我需要做的是这个
$number = 5;
$file_name = 'Haller(1).jpg';
输出
$file_name = 'Haller(5).jpg';
我怎么能在PHP中这样做。我在正则表达式中太弱了。请帮忙
答案 0 :(得分:2)
$number = 5;
$file_name = 'Haller(1).jpg';
echo preg_replace('/\(\d+\)/', '(' . $number . ')', $file_name); // Haller(5).jpg
\d
匹配数字。答案 1 :(得分:2)
尝试preg_replace
preg_replace('/\(\d+\)/', '(' . $your_number_to_replace . ')', $your_file_name);
答案 2 :(得分:0)
您可以尝试preg_replace
$number = 5;
$file_name = 'Haller(1).jpg'
$return = preg_replace("/\d/", $number, $file_name);
echo $return;
请注意,我只放置了\d
,因为您的要求只需要替换1个号码。如果您希望使用多位数字将其更改为\d+
答案 3 :(得分:0)
您可以使用preg_replace http://php.net/manual/en/function.preg-replace.php您可以一次替换多个值
<?php
$patterns = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/',
'/^\s*{(\w+)}\s*=/');
$replace = array ('\3/\4/\1\2', '$\1 =');
echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27');
?>