str_replace. замена чисел из строки

#php #replace #str-replace

#php #заменить #str-replace

Вопрос:

ПРИВЕТ всем, у меня есть этот код здесь

 $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

это числа перед «-«, которые мне нужны, Можно ли это сделать?

Спасибо

Ответ №1:

Вы можете использовать регулярное выражение с помощью 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 */
  

Ответ №2:

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

 $tags = substr($tags, 9);
  

В противном случае, если вы уверены, что каждое число заканчивается на » — «, вы могли бы сделать:

 $tags = substr($tags, strrpos($tags," - ")   3);
  

Ответ №3:

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

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

Комментарии:

1. Привет, спасибо, к сожалению, это не сработало, поскольку он все еще добавляет числа.