我正在尝试在文本的中间添加一些东西,就像那样。
PrivateImg-0123456789_[我想在这里添加一些东西].jpg
而且我不知道我应该使用哪种功能或方式。
我想知道这个函数preg_replace
,但我不知道你是否可以让这个函数替换某个位置的特定文本。
试试这个,如果你想在扩展之前插入文本:
$string = 'PrivateImg-0123456789.jpg';
$pattern = '/(.+?)(\.[^\.]+)/';
$text_to_insert = '_I wanna add here something';
$replacement = '${1}' . $text_to_insert . '$2';
echo preg_replace($pattern, $replacement, $string);
模式说: (.+?) 匹配和分组除 \n 之外的任何字符 1 次或更多次
然后(.[^.]+) 匹配和分组 . 特点 '。' 和任何字符,除了:'.' 1次或多次
这段代码不使用 preg_replace 怎么样。可能会多一行/多行代码,但绝对比 preg_replace 解决方案更容易
<?php
$string = 'PrivateImg-0123456789.jpg';
$text_to_insert = '_I wanna add here something';
$pos = strrpos($string,".");
$string = substr($string,0,$pos) . $text_to_insert . substr($string,$pos);
print $string;
?>
只用str_replace()
?
$string = "PrivateImg-0123456789.jpg";
echo str_replace(".jpg", "[whateveryouwant].jpg", $string);
如果您必须使用正则表达式:
$string = "PrivateImg-0123456789.jpg";
echo preg_replace("/\.(jpe?g|png|gif)$/si", "[whateveryouwant].$1", $string);
这将执行 jpg、jpeg、png 和 gif,只要它是最后一部分。/foo/bar.gif/thisIsWeird
不匹配