我希望从左边获取所有文本,直到有空格,然后在空格后再获得一个字符。
例如: " Brian Spelling" 将 " Brian S"
我怎么能在php中做到这一点?
在ASP中,代码如下所示:
strName1=left(strName1,InStr(strName1, " ")+1)
答案 0 :(得分:4)
<?php
$strName1 = "Brian Spelling";
$strName1 = substr($strName1, 0, strpos($strName1, ' ')+2);
echo $strName1;
打印
Brian S
答案 1 :(得分:2)
答案 2 :(得分:2)
使用explode
函数拆分字符串,并使用substr
函数将第二部分的第一个字符子串。
$explodedString = explode(" ", $strName1);
$newString = $explodedString[0] . " " . substr($explodedString[1], 1);
答案 3 :(得分:1)
$string = "Brian Spelling";
$element = explode(' ', $string);
$out = $element[0] . ' ' . $element[1]{0};
只是为了获得Rob Hruska的回答,建议您可以这样做:
$skip = array( 'jr.', 'jr', 'sr', 'sr.', 'md' );
$string = "Martin Luther King Jr.";
$element = explode(' ', $string);
$count = count( $element );
if( $count > 1)
{
$out = $element[0] . ' ';
$out .= ( in_array( strtolower( $element[ $count - 1 ] ), $skip ) )
? $element[ $count - 2 ]{0} : $element[ $count - 1 ]{0};
} else $out = $string;
echo $out;
- 只是编辑所以“雪儿”也会起作用
添加要跳过的任何后缀添加到$ skip数组
答案 4 :(得分:1)
Regexp - 确保它使用/ U修饰符(ungreedy)命中第二个单词。
$t = "Brian Spelling something else";
preg_match( "/(.*) ./Ui", $t, $r );
echo $r[0];
你得到“Brian S”。
答案 5 :(得分:1)
请尝试以下代码
$name="Brian Lara"
$pattern = '/\w+\s[a-zA-Z]/';
preg_match($pattern,$name,$match);
echo $match[0];
输出
Brian L