str_replace.замена чисел из строки - PullRequest
1 голос
/ 30 сентября 2011

HI все, у меня есть этот код здесь

$pathinfo = pathinfo($fullpath);
$tags = $shortpath;
$tags = str_replace("/", " ", $tags);
$tags = str_replace("__", " ", $tags);
$tags = str_replace(".png", "", $tags);
$tags = str_replace(".jpg", "", $tags);
$tags = str_replace(".jpeg", "", $tags);
$tags = str_replace(".gif", "", $tags);

Все отлично работает с вышеупомянутым, но мне также нужно заменить некоторые числа в начале файлов, которые я добавляю

примерфайла будет

247991 - my_small_house.jpg

это номера перед "-" мне нужно уйти Может ли это быть сделано?

Спасибо

Ответы [ 3 ]

2 голосов
/ 30 сентября 2011

Вы можете использовать регулярные выражения с preg_replace () или preg_split (), но я думаю, что explode () будет лучше:

$chunks = explode('-',$shortpath);  // you just keep the part after the dash
$tags = str_replace(array('/','__'),' ', $chunks[1]);
$tags = str_replace(array('.png','.jpg','.jpeg','.gif'),'',$tags);
/* used array to avoid code repetition */
1 голос
/ 30 сентября 2011

Номер, который нужно удалить, состоит из фиксированного числа цифр?Если это так, вы можете просто сделать:

$tags = substr($tags, 9);

Иначе, если вы уверены, что каждое число заканчивается на «-», вы можете сделать:

$tags = substr($tags, strrpos($tags," - ") + 3);
0 голосов
/ 30 сентября 2011

Попробуйте это:

preg_replace('/^[0-9]+(.+)/', '$1', $tags);
...