2010-09-24 49 views
152

前5個字符如何使用PHP如何從字符串

$myStr = "HelloWordl"; 

結果應該是這樣的

$result = "Hello"; 
+14

重複:[你如何拉動在PHP中的字符串的前100個字符](http://stackoverflow.com/questions/317336/how-do-you-pull-first-100-characters-of-一個字符串,在-PHP)。 (是的,我知道100!= 5.) – 2010-09-24 13:34:52

+0

[獲取字符串的前n個字符]可能的重複(https://stackoverflow.com/questions/3161816/get-first-n-characters-of-a-string ) – mega6382 2017-11-01 13:37:43

回答

345

對於single-byte strings(例如US-ASCII,ISO 8859族等)使用substrmulti-byte strings(如UTF-8,UTF-16等)使用mb_substr

// singlebyte strings 
$result = substr($myStr, 0, 5); 
// multibyte strings 
$result = mb_substr($myStr, 0, 5); 
+0

謝謝,這就是我所需要的:'if(substr($ myURL,0,4)==「www。」) $ myURL = preg_replace('/ www./','',$ myURL,1 );' – shanehoban 2014-06-19 09:50:24

+0

你真的只需要str_replace('www。','',$ url);不必檢查它是否存在。 – 2017-11-02 16:42:47

7

可以使用substr功能像這樣得到的字符串前5個字符:

echo substr($myStr, 0, 5); 

substr的第二個參數是從你想要的位置開始和第三個參數是你想返回多少個字符。

33

使用substr()

$result = substr($myStr, 0, 5); 
+0

'substr(「Häagen-Dazs」,0,5)==「Häag」' - 我做錯了什麼? – user187291 2010-09-24 13:32:14

+8

@stereofrog:您可能正在使用像UTF-8這樣的多字節字符編碼。在這種情況下,使用'mb_substr'。 – Gumbo 2010-09-24 13:33:38

16

另一種獲得只有一個字符的方法。

$str = 'abcdefghij'; 

echo $str{5}; 
+0

這是錯誤問題的正確答案。 Downvoted。 – mickmackusa 2017-11-09 03:21:09

0

你可以得到你的結果通過簡單地使用substr()

語法 SUBSTR(字符串,開始位置,長度)

<?php 
$myStr = "HelloWordl"; 
echo substr($myStr,0,5); 
?> 

輸出:

Hello 
+2

這個很晚的帖子並沒有增加任何價值,只是因爲它說的所有內容都已經說過(幾年前)而使頁面膨脹。除非你有一些獨特而有價值的補充,否則請不要發佈答案。低於這個答案阻止無用的,遲到的帖子。 – mickmackusa 2017-11-09 03:24:43