そのように、テキストの真ん中に何かを追加しようとしています。
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 を使用しないこのコードはどうでしょうか。コードが 1 行または 2 行増える可能性がありますが、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
一致しません