У меня есть группа файлов, которые были названы в несколько стандартном формате. Стандартная форма в основном это:
[целое число] _word1_word2_word3_ ... _wordn, где слово может быть чем угодно, но все слова разделяются подчеркиванием.
На самом деле я хочу сделать только три вещи в тексте:
1.) Я хочу изменить целое число, которое всегда в начале, чтобы что-то вроде «200» стало бы $ 200,00.
2.) Заменить любые "слова" в форме "на", "с", "w /" или "W /" на "на".
3.) Замените все подчеркивания пробелом.
Я написал три разных вызова preg_replace, чтобы сделать трюк. Они следующие:
1.) $filename = preg_replace("/(^[0-9]+)/","$ $1.00",$filename)
2.) $filename = preg_replace("/_([wW]|[wW]ith)_/"," with ",$filename)
3.) $filename = preg_replace("/_/"," ",$filename);
Каждая замена работает, как и ожидалось, при запуске по отдельности, но когда все три запускаются, вторая замена игнорируется. Почему что-то подобное происходит?
Спасибо за помощь!
Обновление:
Вот фактический код, с которым я работаю:
$path = "./img";
$dir_handle = @opendir($path);
while ($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
$id = preg_replace("/\.jpg/","",$file);
$id = preg_replace("/(^[0-9]+)/","$ $1.00", $id);
$id = preg_replace("/_([wW]\/|[wW]ith)_/"," with ", $id);
$id = preg_replace("/_/"," ", $id);
echo "<a href='javascript:show(\"img/$file\")'>$id</a> <br/>";
}
}
closedir($dir_handle);