回答
您可以將短語拆分爲一個數組,然後從數組中重建較短的短語;
$words = explode(" ", $bigphrase);
$somewords = array_slice($words, 0, 10);
$smallphrase = implode(" ", $somewords);
如果字符串在開頭有空格並且單詞之間有多個空格,那麼該怎麼辦?或'',''字之間? [正則表達式變體](http://stackoverflow.com/questions/7675616/is-there-on-php-a-crop-functions-for-the-words/7676313#7676313)。 – hakre
$exploded = explode(" ", $string);
for($i = 0; $i < 10;$i++){
echo $exploded[$i]." ";
}
如果字符串少於10個單詞,則會在末尾添加不必要的空格... –
如果字符串在前面(或中間多個)包含空格,則它甚至不會返回前10個單詞。 – hakre
$cropped = implode(' ', array_slice(str_word_count($text, 1), 0, 10));
$cropped = implode(" ", array_splice(explode(" ", $input), 0, 10));
'$ input ='我的單詞有很多間隔:),你能幫助它嗎?或者這是不可能的嗎?';' – hakre
您可以創建一個拆分字符串到一個數組,然後返回字符串的函數。 這樣的事情應該去做
function crop($str, $length) {
$str = explode(" ", $str);
return implode(" " , array_slice($str, 0, $length));
}
不,我不這麼認爲,但你可以做這樣的事情:
<?php
function strcrop($str, $words = 10)
{
if(substr_count($str, ' ') > 10)
return substr($str, 0, strpos($str, ' ', $words));
return $str;
}
問題是獲得前10個單詞而不是基於字符... –
我已經完成了與其他解決方案相同的工作,但未對原始字符串造成爆炸和內爆。 – SnatchFrigate
雖然我做了一些改進,但如果沒有更改,只有不到10個單詞,它會中斷。 – SnatchFrigate
不使用數組,你可以做到這一點(可能工作得更快,尚未測試)。
<?php
$myText = "Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua";
$result = cropWords($myText, 10);
if($result !== false) {
echo $result;
}
function cropWords($text, $cropPosition) {
$counter = 0;
$position = 0;
while($counter++ < $cropPosition) {
$position += strpos(substr($text, $position), " ");
if($position === false) {
return false;
} else {
$position++;
}
}
return trim(substr($text, 0, $position));
}
?>
不,在PHP中,字符串中的單詞沒有裁剪功能。 PHP甚至不知道一個單詞是什麼,你也沒有指定。
因此,我假設正則表達式中的單詞或單詞字符符合您的需求。如果是這樣的話,你可以只匹配前10個字,串並刪除其餘部分:
$string = preg_replace('~^\W*(\w+(?:\W+\w+){0,9}+).*$~', '$1', $string);
這工作,以及與前面或詞之間的多個的非單詞字符。
- 1. 有沒有關於PHP編程的書?
- 2. array_shift功能沒有在PHP
- 3. php Codeigniter沒有調用類的功能
- 4. PHP的郵件功能沒有工作
- 5. 的onclick功能沒有在PHP
- 6. 有沒有辦法提高PHP的整潔功能的性能?
- 7. 是否有關於PHP XMLWriter功能的任何資源?
- 8. 會話進入功能,沒有設置
- 9. 沒有cookie的PHP會話
- 10. 關於php郵件功能的問題
- 11. 有沒有更好的方法來切換沒有虛擬功能的功能?
- 12. 功能上沒有的NodeJS
- 13. 沒有Excel的Excel功能
- 14. 沒有BIO的ASN1_TIME_print功能?
- 15. 沒有Qt3D的QCircularBuffer功能
- 16. 沒有功能的相機
- 17. 功能沒有用的document.all
- 18. 有關touchmoved功能
- 19. php |更有效的功能
- 20. 傳遞數組的功能有或沒有參考關鍵字
- 21. 有沒有地圖功能?
- 22. Ajax php驗證沒有功能
- 23. PHP GET功能沒有得到數據
- 24. 沒有留存用於System.Generic.List功能NHibernate
- 25. Golang夠程沒有運行與功能推遲,關於信道
- 26. 關於maxMind沒有主要功能錯誤
- 27. Ajax沒有功能
- 28. 有沒有比較PHP功能和Go版本的參考?
- 29. PHP:有沒有像xmlrpc_encode_request一樣的功能?
- 30. 有沒有像Java的PHP包含任何功能?
如果字符串有連字符,應如何處理?例如。在你的上下文中是「用戶定義的」一個或兩個字嗎? –