我有一個文本。在字符串中添加文本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