1

人々の電話番号をデータベースに記録したいと思っています。人々は(市外局番に基づいて)さまざまな方法で数字を入力するため、データベースに上がる前に標準的な方法で入力したものを正規化し、データベースから読み戻してページに置くと、それが来るこの1-954-999-9999のように、この形式で を追加し<a href="tel:1-954-999-9999">1-954-999-9999</a>て、Web アプリまたは通常のサイトからクリックして電話をかけることができます。

これはすべて言った、私は質問があります。

POSTでは、これが私がそれを処理する方法です

$compBizNumber = mysqli_real_escape_string($c2d, $_POST['compBizNumber']) ;
$compBizNumber = str_replace("(", "-", $compBizNumber);
$compBizNumber = str_replace(")", "-", $compBizNumber);
$compBizNumber = str_replace(" ", "-", $compBizNumber);
$compBizNumber = filter_var($compBizNumber,FILTER_SANITIZE_NUMBER_INT) ;

一度に複数の文字を置き換える方法はありますか??

これについてどうすればいいですか?

ありがとうございます。

4

2 に答える 2

2

str_replaceは最初 (および 2 番目のパラメーター) として配列を受け入れるため、次のようになります。

$compBizNumber = str_replace(array("(", ")", " "), "-", $compBizNumber);

ただし、より柔軟な方法は、正規表現を使用してすべての非数値文字を置き換えることです。

$compBizNumber = preg_replace("/[^0-9]/", "-", $compBizNumber);

この方法では、ユーザーが入力する可能性のあるすべての文字を str_replace に追加する必要はありません。

于 2013-03-30T11:39:20.490 に答える
1

正規表現を使用して数字以外をすべて削除しない理由:

$myNumber = "+31 (0) 43 - 123 345 67";
preg_replace("/[^0-9]/","", $myNumber);

http://codepad.org/30vUqWWC

ただし、+番号を機能させるには、何もないのではなく、00 に置き換える必要があると思います。それについては100%確信が持てません。

于 2013-03-30T11:42:16.930 に答える