1

更新するたびにこのようになるようにファイル名を更新したい。

 some_name_1, some_name_2, some_name_3, etc.

更新するたびに、末尾の整数が1つ増えます。以下は私のプロトタイプです。実装する前に、これがベストプラクティスの方法であることを確認したかったのです。また、私は100%ではありません。PHPは暗黙のキャストを正しく実行します。

これはファイル名を更新するための良い習慣ですか?

// ... in a class
private function updateFileName()
{
    $pattern = '#_(\d+)$#';
    $subject = $this->file_name; // $subject holds current file name
    preg_match($pattern, $subject, $matches);
    if($matches[0])
    {
        $patterns = array();
        $temp = $matches[0];
        $patterns[0] = '/$temp$/';
        $replacements = array();
        $replacements[0] = $matches[0] + 1;
        preg_replace($patterns, $replacements, $subject); // $subject now holds new name
    }
}

明確化

  • ファイル名は実際にはハッシュであり、1文字の文字列です。
  • _1などは常に文字列の最後にあります(おそらくアンカーを使用するのが良いでしょう)
4

1 に答える 1

1

1 つの preg_replace ですべてを実行できます。

preg_replace("/\b([^\w]+)\b/i",'_',$filename);
于 2013-02-18T16:03:51.943 に答える