0

特殊文字を含む置換しようとしているファイルがあります

から:

[v]_CØDE:BREAKER_-_01_[gg][D00B1].mkv

に:

[v]_CoDE:BREAKER_-_01_[gg][D00B1].mkv

しかし、以下のコードを試すと

if ($handle = opendir($refolder)) {
  while (false !== ($entry = readdir($handle))) {
    $renameTHEfile = $entry;
    $renameTHEfile = str_ireplace("Ø","O",$renameTHEfile);
    $renameTHEfile = str_ireplace('ø','o',$renameTHEfile);
    $renameTHEfile = str_ireplace(":","_",$renameTHEfile);
    $renameTHEfile = str_ireplace("!","",$renameTHEfile);
    $renameTHEfile = str_ireplace("'","",$renameTHEfile);
    $renameTHEfile = str_ireplace('"','',$renameTHEfile);
    $renameTHEfile = str_ireplace(",","",$renameTHEfile);
    $renameTHEfile = str_ireplace("#","",$renameTHEfile);
    $renameTHEfile = str_ireplace("$","",$renameTHEfile);
    $renameTHEfile = str_ireplace('/','',$renameTHEfile);
    $renameTHEfile = str_ireplace("?","",$renameTHEfile);


    $theoldfile_rename = $refolder . $entry;

    $thenewfile_rename = $refolder . $renameTHEfile;


    $cmd_renameit = 'move "' .$theoldfile_rename. '" "'.$thenewfile_rename .'"';

    echo $cmd_renameit;

    exec($cmd_renameit);
  }
}

ビデオファイルは次のように出力されます

[v]_CØDE

に適切に置き換える方法、: を _ に置き換える必要もあります

[v]_CODE_BREAKER_-_01_[gg][D00B1].mkv

助けてくれてありがとう。

4

2 に答える 2

1

必要に応じて名前を変更する関数を作成するだけで、次のようなものを検討できます。

<?php
function rename_ani($name){
    $name = str_replace(array("Ø","ø"), "O", $name);
    $name = str_replace(":","_",$name);
    $name = str_replace(array("!","'",'"',",","#","$","/","?"),"",$name);
    return $name;
}

$anime = '[v]_CØDE:BREAKER_-_01_[gg][D00B1].mkv';
echo rename_ani($anime); // output: [v]_CODE_BREAKER_-_01_[gg][D00B1].mkv

?>
于 2012-10-07T09:58:33.457 に答える
0

ファイルにスペースがあります。「\」またはその他の文字のようにエスケープします。あなたの場合は、スペースを削除してください。str_replace(" ", "", $str)

于 2012-10-07T05:58:57.570 に答える