在PHP字符串中添加文本

在PHP字符串中添加文本,php,string,Php,String,我有一条短信 $text='userpics/115/X3WGOC0009JA.jpg'; 我想在X3WGOC0009JA.jpg之前添加一个字母p,因此我的输出将是 $text='userpics/115/pX3WGOC0009JA.jpg'; ---^ 我是php新手,所以我真的不知道该尝试什么,我希望你能引导我朝着正确的方向前进你可以用一种方式用斜线分解 $exploded_text = explode('/', $text); $new_text

我有一条短信

$text='userpics/115/X3WGOC0009JA.jpg';
我想在X3WGOC0009JA.jpg之前添加一个字母p,因此我的输出将是

 $text='userpics/115/pX3WGOC0009JA.jpg';
                  ---^

我是php新手,所以我真的不知道该尝试什么,我希望你能引导我朝着正确的方向前进

你可以用一种方式用斜线分解

$exploded_text = explode('/', $text);
$new_text = $exploded_text[0] . $exploded_text[1] . 'p' . $exploded_text[2];

这不是最好的方法,但它会起作用。

首先,我会使用strrpos和substr获取文件名:

然后,您可以使用以下命令添加$prepend_filename中指定的p:

$new_path = $path . DIRECTORY_SEPARATOR . $prepend_filename . $filename;
有一个函数,它可以在您想要的点插入字符串。 我们将其与可用于查找第一条斜线的斜线相结合,反向查找:

这将在$string中插入“p”。在$string中“/”的位置。+1将“光标”更正为斜杠后的字符

为什么不使用explode函数呢? 很简单:这些都很慢。字符串函数如strpos和substr_replace非常快,特别是在小字符串上。 在php中,数组的速度要慢得多,所以除非必须,否则不要使用数组。对于简单的字符串操作,你应该使用简单的字符串函数,当你这样说的时候听起来很简单,不是吗

在一个简单的测试中,我对像user3758531这样的explode变量与像我这样的字符串变量进行了基准测试: 使用阵列进行100.000次尝试:1.5秒 使用字符串进行100.000次尝试:0.9秒


在这种情况下,采取这一行动的时机并不重要。但如果你用这种方式思考一下网站,你会发现它在加速/减速。

基于他的问题,我认为他想做的就是:

$text='userpics/115/'.'p'.'X3WGOC0009JA.jpg';

如果你做了大量的工作,你是否尝试过设置变量和连接

$p = 'p';

$new = "userpics/115/" . $p . "X3WGOC0009JA.jpg";

因为您没有关于字符串是什么以及哪些部分是固定的任何规范,所以答案可能是:$text=str_替换“userpics/115/X3WGOC0009JA.jpg”,“userpics/115/pX3WGOC0009JA.jpg”,“$text;天哪,去死吧?!那里我最喜欢的一句话是使用骰子如果超市的冰箱坏了,想买一桶冰淇淋的顾客不会被踢出大楼。我用一个例外代替了骰子为什么会有这么大的信息?为什么不是软退出?为什么页面必须停止工作?只有当斜杠出现时才执行代码,否则我不怀疑,这将非常容易,在这种情况下,您可以轻松地将字符串添加到原始字符串中string@Martijn在过去的23天里,他的其他问题表明他刚刚开始学习PHP。所以我想,这可能是他不知道的事情。这不是办法!我不打算投反对票,因为这是一个有效的方法,一个简单的例子,使用explode,但永远不要使用数组函数,因为简单的字符串函数就足够了。是的,我在考虑substr,但op看起来想动态地这样做,我们永远不知道字符串有多长,所以我这样做了@Martijnth这就是为什么您可以使用strRpos查看我的aswer进行演示并链接到文档:这是标记的解决方案,当它在评论中说这不是解决方案时。阅读是一门艺术。对于新人来说:这不是一条路。但至少它给了@user3758531一些分数;他说他有整根绳子,我怀疑他能在那里把它分开,我认为分开是一开始的问题
$text='userpics/115/'.'p'.'X3WGOC0009JA.jpg';
$p = 'p';

$new = "userpics/115/" . $p . "X3WGOC0009JA.jpg";