#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. Привет, спасибо, к сожалению, это не сработало, поскольку он все еще добавляет числа.