左からすべてのテキストを取得し、スペースがあるまで移動してから、スペースの後にもう 1 文字取得したいと考えています。
例: 「Brian Spelling」は「Brian S」になります。
どうすればphpでこれを行うことができますか?
ASP では、コードは次のようになります。
strName1=left(strName1,InStr(strName1, " ")+1)
左からすべてのテキストを取得し、スペースがあるまで移動してから、スペースの後にもう 1 文字取得したいと考えています。
例: 「Brian Spelling」は「Brian S」になります。
どうすればphpでこれを行うことができますか?
ASP では、コードは次のようになります。
strName1=left(strName1,InStr(strName1, " ")+1)
<?php
$strName1 = "Brian Spelling";
$strName1 = substr($strName1, 0, strpos($strName1, ' ')+2);
echo $strName1;
版画
Brian S
文字列を関数で分割しexplode
、2 番目の部分の最初の文字を関数でサブストリング化しsubstr
ます。
$explodedString = explode(" ", $strName1);
$newString = $explodedString[0] . " " . substr($explodedString[1], 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 配列に追加します
正規表現 - /U 修飾子 (貪欲でない) を使用して 2 番目の単語にヒットするようにします。
$t = "Brian Spelling something else";
preg_match( "/(.*) ./Ui", $t, $r );
echo $r[0];
そして、あなたは「ブライアンS」を手に入れます。
以下のコードを試してください
$name="Brian Lara"
$pattern = '/\w+\s[a-zA-Z]/';
preg_match($pattern,$name,$match);
echo $match[0];
出力
Brian L