Основываясь на коде, который я видел в ссылке на ideone, которую вы разместили ранее, я понимаю, что могло произойти.Если вы пытались сделать это раньше:
echo $img_name2 = "my_beautiful_picture_123456_789101112131415_16171819202122.jpg";
echo " | ";
echo $img_name2 = substr($img_name2, 0, strpos($img_name2, "_"));
echo " | ";
echo $img_name2 = preg_replace('/_[0-9].*/', '', $img_name2);
Причина, по которой preg_replace
выглядела как , не сработала, потому что предыдущий substr
уже уменьшил $img_name2
до"мой", прежде чем вы использовали preg_replace
на нем.Так как у «my» нет подчеркиваний или чисел, это регулярное выражение ничего не соответствует, поэтому ничего не было заменено, и вы просто получили то же «my».