Вставить строку в строку с учетом индекса - PullRequest
5 голосов
/ 14 сентября 2010

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

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

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

Ответы [ 3 ]

24 голосов
/ 14 сентября 2010

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

$string = "some-image.jpg";
$insertion = ".big";
$index = 10;

$result = substr_replace($string, $insertion, $index, 0);

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

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

8 голосов
/ 14 сентября 2010

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

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

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

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

7 голосов
/ 14 сентября 2010

См. Это: 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...