从左边到空格获取字符,然后再输入一个字符

时间:2012-10-18 13:27:53

标签: php

我希望从左边获取所有文本,直到有空格,然后在空格后再获得一个字符。

例如: " Brian Spelling" " Brian S"

我怎么能在php中做到这一点?

在ASP中,代码如下所示:

strName1=left(strName1,InStr(strName1, " ")+1)

6 个答案:

答案 0 :(得分:4)

<?php
$strName1 = "Brian Spelling";
$strName1 = substr($strName1, 0, strpos($strName1, ' ')+2);
echo $strName1;

打印

Brian S

答案 1 :(得分:2)

  1. 使用strpos
  2. 查找空间的索引
  3. 使用substr
  4. 将字符串从开头提取到索引+ 2

    还要考虑如何更新逻辑,例如:

    • 小时。 G.威尔斯
    • Martin Luther King,Jr。
    • 谢尔

答案 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