-2

文字列内の数値を新しい数値に置き換える際に問題があります。説明はこちら。問題は、ファイルをアップロードすると、ファイルが既に見つかっているのと同じディレクトリにファイル名が保存されることです。したがって、サーバーはファイル名に追加(1)してファイル名を保存します。

$file_name = 'Haller(1).jpg';

これは私がここに置いたサンプル文字列です。今私がする必要があるのはこれです

$number = 5;
$file_name = 'Haller(1).jpg';

出力

$file_name = 'Haller(5).jpg';

phpでこれを行うにはどうすればよいですか。正規表現が苦手です。助けてください

4

4 に答える 4

2
$number = 5;
$file_name = 'Haller(1).jpg';

echo preg_replace('/\(\d+\)/', '(' . $number . ')', $file_name); // Haller(5).jpg
  • \d桁合わせ。
于 2013-08-05T04:38:55.127 に答える
2

preg_replace を試す

preg_replace('/\(\d+\)/', '(' . $your_number_to_replace . ')', $your_file_name);

http://php.net/manual/en/function.preg-replace.php

于 2013-08-05T04:41:27.433 に答える
0

あなたが試すことができますpreg_replace

$number = 5;
$file_name = 'Haller(1).jpg'
$return = preg_replace("/\d/", $number, $file_name);
echo $return;

\dあなたの要件には交換する番号が1つしかないため、私は配置しただけであることに注意してください。複数桁の数字が予想される場合は、それを次のように変更します\d+

于 2013-08-05T04:41:21.450 に答える
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');
?>
于 2013-08-05T05:09:44.223 に答える