-2

'Name'というフォームフィールドがありますが、preg式を使用して、送信をFirst Name&LastNameとしてDBに保存したいと思います。

フィールドに「JohnSmith」という名前を入力した場合、正規表現がこれをFirst Name-John Surname-Smithにストリップする方法を説明できますか?

前もって感謝します

4

5 に答える 5

2

単純なケースでは、名前を空白で分割したい場合があります。

$name = "John Smith";
$nameParts = explode(' ',$name);
var_dump($nameParts);

より複雑なケース(タイトル/ミドルネームなど)では、複数の入力フィールドを使用せざるを得ない場合があります。

于 2012-10-08T12:30:20.150 に答える
2
$names = explode(" ", $POST['name']);
$firstName = $name[0];
$lastName = $name[1];

しかし、これは絶対に残忍な考えです。名と名前のフォームフィールドを作成するだけです。ある時点で誰かがアルフレッドEニューマンのようなものを入れて、あなたは彼らのイニシャルネームまたはミドルネームをラストネームとして使うことになることを保証します。

于 2012-10-08T12:31:56.197 に答える
0

使用をsplit優先する(バージョンphp <5.3.0)、または関数explodeのエイリアスですsplit。この場合、フルネームをスペース文字で分割する必要があります。' '

var $fullname = "John Smith";
var $splitfullname = $fullname.split(' ');

var $firstname = $splitfullname[0];
var $lastname = $splitfullname[1];

-

var $fullname = "John Smith";
var $splitfullname = explode(' ', $fullname);

var $firstname = $splitfullname[0];
var $lastname = $splitfullname[1];

名とフルネームをキャッチするフォームを作成する場合は、フルネーム入力フィールドを2つの入力フィールド(名と姓)に分割することをお勧めします。

于 2012-10-08T12:29:12.677 に答える
0

使用explode

<?php
$fullname='John Smith';

list ($firstName,$lastName)=explode(' ',$fullname);

echo 'First name: '.$firstName.PHP_EOL;
echo 'Last name: '.$lastName.PHP_EOL;
于 2012-10-08T12:33:41.523 に答える
0

他の誰かが同様の問題を抱えている場合に備えて、この関数を作成しました-すべてのアドバイス担当者に感謝します!

http://ideone.com/gxvi9

于 2012-10-08T13:00:19.850 に答える