2010-09-13 95 views
5

我知道这是一个非常简单的问题,但我只是想知道是否有a native php method to inject a string into another string。我对新文本操作的常见回应是参考manual的字符串函数列表。但我没有看到任何本地方法显式插入一个字符串到另一个字符串,所以我想我会咨询SO。将字符串插入给定索引的字符串

答案可能是PHP本地字符串函数或简单的正则表达式(它使我的眼睛流血和我的大脑融化,所以我避免它)的某种组合。

EX: 有一个字符串像some-image.jpg.jpg之前注入.big产生some-image.big.jpg

回答

8

You can do anything with regular expressions

针对您的特殊要求,解决办法是:

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

我会建议如何编写正则表达式,因为他们可以参与发展(here's a starting point)非常有用的阅读了。

+0

lol指的是我眼睛的流血评论。我不反对使用正则表达式,只是写它!哈哈。虽然我已经接受了这个事实,即我需要改善并学习它。 – 2010-09-13 20:59:24

+1

我的眼睛对正则表达式的仇恨抛在一边...这是一个正则表达式的高超教程 - http://www.phpfreaks.com/tutorial/regular-expressions-part1---basic-syntax – 2010-09-13 21:00:34

+0

@Derek http:// www。 regular-expressions.info/tutorial.html,如果你想更好地学习正则表达式;) – 2010-09-13 21:00:42

24

可以使用substr_replace通过更换零长度字符串插入一个字符串您的插入:

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

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

从手册页(在length(第4次)参数的描述):

如果长度是零,那么该功能将具有在给定的起始位置的偏移替换插入到串的效果。

+0

Gah!被秒击败:( – erisco 2010-09-13 20:57:55

+1

更好的回答国际海事组织使用正则表达式的东西这么简单,这是矫枉过正 – Andy 2012-09-14 11:09:32

+0

这假设我们知道索引,我们可能不会...所以是的,正则表达式 – CptAJ 2013-05-30 18:43:08