ali*_*ali 141 php string extract text-segmentation
我想从字符串中提取变量的第一个单词.例如,请输入以下内容:
<?php $myvalue = 'Test me more'; ?>
Run Code Online (Sandbox Code Playgroud)
结果输出应该是Test输入的第一个字.我怎样才能做到这一点?
sal*_*the 266
有一个字符串函数(strtok)可用于根据某些分隔符将字符串拆分为较小的字符串(标记).出于此线程的目的,Test me more可以通过对空格字符上的字符串进行标记来获得第一个单词(定义为第一个空格字符之前的任何内容).
<?php
$value = "Test me more";
echo strtok($value, " "); // Test
?>
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息和示例,请参阅strtok PHP手册页.
cod*_*ict 229
您可以使用explode功能,如下所示:
$myvalue = 'Test me more';
$arr = explode(' ',trim($myvalue));
echo $arr[0]; // will print Test
Run Code Online (Sandbox Code Playgroud)
Yac*_*oby 36
如果你有PHP 5.3
$myvalue = 'Test me more';
echo strstr($myvalue, ' ', true);
Run Code Online (Sandbox Code Playgroud)
请注意,如果$myvalue是包含一个单词的字符串,strstr则在这种情况下不返回任何内容.解决方案可以是在测试字符串中附加一个空格:
echo strstr( $myvalue . ' ', ' ', true );
Run Code Online (Sandbox Code Playgroud)
这将始终返回字符串的第一个单词,即使该字符串中只有一个单词
替代方案如下:
$i = strpos($myvalue, ' ');
echo $i !== false ? $myvalue : substr( $myvalue, 0, $i );
Run Code Online (Sandbox Code Playgroud)
或者使用explode,它有很多使用它的答案,我不打算指出如何做到这一点.
小智 12
虽然现在还不晚,但PHP有一个更好的解决方案:
$words=str_word_count($myvalue, 1);
echo $words[0];
Run Code Online (Sandbox Code Playgroud)
与已接受的答案类似,但少了一步:
$my_value = 'Test me more';
$first_word = explode(' ',trim($my_value))[0];
//$first_word == 'Test'
Run Code Online (Sandbox Code Playgroud)
万一你不确定字符串是否以单词开头......
$input = ' Test me more ';
echo preg_replace('/(\s*)([^\s]*)(.*)/', '$2', $input); //Test
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
170962 次 |
| 最近记录: |