0

そのように、テキストの真ん中に何かを追加しようとしています。

PrivateImg-0123456789_[ここに何か入れたい].jpg

また、どの関数や方法を使用すればよいかわかりません。

関数 について疑問に思っていましたpreg_replaceが、この関数を特定の位置の特定のテキストに置き換えることができるかどうかはわかりません。

4

3 に答える 3

1

拡張子の直前にテキストを挿入したい場合は、これを試してください:

$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回以上

于 2013-08-23T17:35:53.507 に答える
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;
?>
于 2013-08-23T18:09:38.150 に答える
0

ただ使う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一致しません

于 2013-08-23T17:31:59.027 に答える