我有一个文本。在字符串中添加文本PHP
$text='userpics/115/X3WGOC0009JA.jpg';
我想补充一个字母p
前X3WGOC0009JA.jpg
,所以我的输出将是
$text='userpics/115/pX3WGOC0009JA.jpg';
---^
我是新来的PHP,所以我真的不知道去尝试一下,我希望你可以引导我朝着正确的方向发展
我有一个文本。在字符串中添加文本PHP
$text='userpics/115/X3WGOC0009JA.jpg';
我想补充一个字母p
前X3WGOC0009JA.jpg
,所以我的输出将是
$text='userpics/115/pX3WGOC0009JA.jpg';
---^
我是新来的PHP,所以我真的不知道去尝试一下,我希望你可以引导我朝着正确的方向发展
你可以通过斜线以单向爆炸。
$exploded_text = explode('/', $text);
$new_text = $exploded_text[0] . $exploded_text[1] . 'p' . $exploded_text[2];
这不是最好的方法,但它会工作。
首先,我会用strrpos
和substr
得到的文件名:
$text = 'userpics/115/X3WGOC0009JA.jpg';
$prepend_filename = 'p';
$last_slash_pos = strrpos($text, '/');
if ($last_slash_pos === false) throw new Exception('No slashes found');
$path = substr($text, 0, $last_slash_pos);
$filename = substr($text, $last_slash_pos + 1); // Add one to skip slash
然后你就可以添加p
使用这个(如$prepend_filename
指定):
$new_path = $path . DIRECTORY_SEPARATOR . $prepend_filename . $filename;
有一个函数,substr_replace()
,它可以在你想要的点插入一个字符串。
我们结合这与strRpos()
,我们可以用它来找到第一个斜杠,展望REVERSE:
$string = substr_replace($string, 'p', strrpos($string, '/')+1);
这将在$string
插入'p'
。在'/'
的位置$string
。 +1将“光标”更正为斜线后面的字符。
为什么不使用爆炸函数?
很简单:那些很慢。像strpos()
和substr_replace()
这样的字符串函数非常快,特别是对于小字符串。
数组在php中慢得多,所以除非必须,否则不要去那里。对于简单的字符串操作,你应该使用简单的字符串函数(听起来很容易,当你把它放在那里不?)。
在一个简单的测试我为基准等user3758531的VS字符串变体等矿井爆炸变体:
100.000尝试与阵列:1.5秒
100.000尝试与字符串:0.9秒
在这种情况下,用这一行动时间并不重要。但是,在整个网站中应用这种思维方式,你会注意到它正在加速/放慢速度。
基于他的问题,我认为所有他想要做的是:
$text='userpics/115/'.'p'.'X3WGOC0009JA.jpg';
我怀疑这很容易,在这种情况下,您可以轻松地将字符串添加到原始字符串中 – Martijn
@Martijn他在过去的2 3中的其他问题几天表明他刚刚开始学习PHP。所以我想,这可能是他不知道的。 – shahharsh2603
你试过只设置你的变量和串联,如果你这样做了一堆。
$p = 'p';
$new = "userpics/115/" . $p . "X3WGOC0009JA.jpg";
他说他有全部的字符串,我怀疑他可以在那里分裂它,我认为分裂是开始的问题 – Martijn
分享您的尝试。 –
既然你没有关于字符串是什么,哪些部分是固定的任何规格,答案可能还有是:'$文字= str_replace函数(“userpics/115/X3WGOC0009JA.jpg”,“userpics/115/pX3WGOC0009JA .jpg',$ text);' – GolezTrol