Вставьте строку в строку с индексом

Я знаю, что это очень простой вопрос, но мне просто интересно, есть a native php method to inject a string into another string . Мой обычный ответ на новое манипулирование текста заключается в том, чтобы проконсультироваться с инструкциями руководства по строковым функциям. Но я не видел никаких собственных методов для явной вставки строки в другую строку, поэтому я решил, что я проконсультирую с SO.

Ответ, вероятно, представляет собой некоторую комбинацию родных строковых функций php ИЛИ просто регулярное выражение (из-за чего мой глаз истекает кровью и мой мозг тает, поэтому я избегаю этого).

EX: Возьмите строку, как some-image.jpg и .big перед .jpg some-image.big.jpg

Вы можете делать все с регулярными выражениями !

Для вашего конкретного запроса решение будет:

 $var = 'myimage.jpg'; $new_var = preg_replace('/\.jpg$/', '.big$0', $var); 

Я бы предложил прочитать, как писать регулярные выражения, поскольку они могут быть очень полезными в разработке ( вот отправная точка ).

Вы можете использовать substr_replace для вставки строки, заменив подстроку нулевой длины своей вставкой:

 $string = "some-image.jpg"; $insertion = ".big"; $index = 10; $result = substr_replace($string, $insertion, $index, 0); 

На странице руководства (описание аргумента length (4)):

Если длина равна нулю, эта функция будет иметь эффект вставки замены в строку при заданном смещении начала.

См. Это: http://www.krizka.net/2007/12/29/how-to-insert-a-string-into-another-string-in-php/

 $newstring=substr_replace($orig_string, $insert_string, $position, 0);