1

左からすべてのテキストを取得し、スペースがあるまで移動してから、スペースの後にもう 1 文字取得したいと考えています。

例: 「Brian Spelling」「Brian S」になります。

どうすればphpでこれを行うことができますか?

ASP では、コードは次のようになります。

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

6 に答える 6

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

版画

Brian S
于 2012-10-18T13:30:38.740 に答える
2
  1. でスペースのインデックスを見つけますstrpos
  2. 先頭からそのインデックス + 2 までの文字列を抽出しますsubstr

また、次のような名前のロジックをどのように更新する必要があるかを検討してください。

  • HGウェルズ
  • マーティン・ルーサー・キング・ジュニア。
  • シェール
于 2012-10-18T13:31:01.330 に答える
2

文字列を関数で分割しexplode、2 番目の部分の最初の文字を関数でサブストリング化しsubstrます。

$explodedString = explode(" ", $strName1);

$newString = $explodedString[0] . " " . substr($explodedString[1], 1);
于 2012-10-18T13:31:05.620 に答える
1
$string = "Brian Spelling";
$element = explode(' ', $string);
$out = $element[0] . ' ' . $element[1]{0};

ロブ・フルスカの答えをアドバイスの下で取る楽しみのために、次のようなことができます:

$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;

-編集したばかりなので、「Cher」も機能します

スキップしたい接尾辞を $skip 配列に追加します

于 2012-10-18T13:31:44.227 に答える
1

正規表現 - /U 修飾子 (貪欲でない) を使用して 2 番目の単語にヒットするようにします。

$t = "Brian Spelling something else";
preg_match( "/(.*) ./Ui", $t, $r );
echo $r[0];

そして、あなたは「ブライアンS」を手に入れます。

于 2012-10-18T13:32:58.593 に答える
1

以下のコードを試してください

$name="Brian Lara"
$pattern = '/\w+\s[a-zA-Z]/';
preg_match($pattern,$name,$match);
echo $match[0];

出力

Brian L
于 2012-10-18T13:36:36.570 に答える