如何用PHP做这样的事情?我喜欢这个只有C#How to check if a string contains a word longer than 50 characters?
的论坛解决方案E.g。我有一个字符串:
$string_to_check = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa rrrr fe we we hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhererererereerdfsdfsdfsdfsdfsdfsdfsdfsdfsdfttttfsd hhghhhhhhhhhhhhhhhhhh fd s hoefjsd k
bla bla bla";
我想创建一个if条件,所以当string包含一个50或更多字符的单词时返回false;否则返回true;
任何建议如何解决这个问题表示赞赏。
答案 0 :(得分:4)
尝试此功能:
function not_long_word($sentence, $length = 50) {
$words = explode(' ', $string);
foreach ($words as $key => $value) {
if (strlen($value) > $length) return false;
}
return true;
}
用法:
$text = "word wooooooooooooooooooooooooooooooooooooooooooooooooooooooooooord";
if (not_long_word($text)) {
echo "there no word longer than 50!";
}
答案 1 :(得分:1)
$str = "a word in-this-string-contains-fifty-or-more-ch ";
if(preg_match('/\S{50,}/',$str))
{
echo 'String contains a word of more than 50 characters';
}
else
{
echo 'String does not contains a word of more than 50 characters';
}
答案 2 :(得分:0)
应该是这样的:
if(strlen($string_to_check) < 50 )
{
...
}
else {
...
}
答案 3 :(得分:0)
首先,将其拆分为单独的单词(假设空格是分隔符),然后找出任何单词是否超过50个字符:
$array = explode(" ",$string);
foreach ($array as $word) {
if (strlen($word) > 50) {
echo "{$word}\n"
}
}
如果分隔符可能有多个空格/制表符,则可以选择正则表达式:
$array = preg_split('[\t\s]+', $string);
答案 4 :(得分:0)
对此进行了测试,效果很好。
check_word_length( $string_to_check );
function check_word_length( $string_to_check ){
foreach ( explode(' ', $string_to_check ) as $word) {
if ( strlen($word) > 50 ) return false;
}
return true;
}