2011-06-24 17 views
1

誰かが助けてくれることを願っています!PHP!eregと!eregiからpreg_matchに切り替える

は、フォームの検証をコーディングでは、私はいくつかの研究を行なったし、私は変更する必要が出たエラーメッセージ"Deprecated: Function ereg() is deprecated in E:\Zacel_Development\sa_model_watch.co.za\insert_newProf.php on line 184"

を持って!eregiとするpreg_matchする!EREG ...

私はこれを試してみました、しかし、役に立たない...誰も私のコードをチェックし、私が困惑していると助言してもらえますか?

マイコードスニペット:

/* Check is numeric*/ 
$regex = "[0-9]{10}"; 
    if(!ereg($regex,$field)){ 
    $form->setError($fieldValue, "* Contact number invalid"); 
    } 

が明らかにされるべきである。

/* Check is numeric*/ 
$regex = "[0-9]{10}"; 
if(!preg_match($regex,$field)){ 
$form->setError($fieldValue, "* Contact number invalid"); 
} 

AND:

/* Check if valid email address */ 
$regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*" 
    ."@[a-z0-9-]+(\.[a-z0-9-]{1,})*" 
    ."\.([a-z]{2,}){1}$"; 
    if(!eregi($regex,$field)){ 
     $form->setError($fieldValue, "* Email invalid"); 
     } 

が明らかにされるべきである。

/* Check if valid email address */ 
$regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*" 
    ."@[a-z0-9-]+(\.[a-z0-9-]{1,})*" 
    ."\.([a-z]{2,}){1}$"; 
    if(!preg_match($regex,$field)){ 
     $form->setError($fieldValue, "* Email invalid"); 
     } 

これはまだ動作しません...何が間違っていますか?

答えて

2

あなたは区切り文字を使用して正規表現パターンを開閉する必要があります。

だから:あなたはパターンが大文字小文字を区別しない使用になりたい場合は

$regex = "[0-9]{10}"; 

$regex = "/[0-9]{10}/"; 

なりiフラグ

$regex = "/somepattern/i"; 
+0

Tnx @PeeHaa、これは驚異的でした!あなたはロックマン! – Celeste

+0

@PeeHaaこれは大変だと思うかもしれませんが、私はこのサイト全体を見渡して、答えを...と答えている印を付ける方法を見つけることができません。 – Celeste

+0

@Celeste:投票の下にあるチェックマークをチェックすることで回答を受け入れることができます。 – PeeHaa

0

ここにいくつかの例があります:

以上から、preg_matchはかなり威圧することができます。ここから始めるには移行のヒントがあります。

<?php 
if(ereg('[^0-9A-Za-z]',$test_string)) // will be true if characters arnt 0-9, A-Z or a-z. 

if(preg_match('/[^0-9A-Za-z]/',$test_string)) // this is the preg_match version. the /'s are now required. 
?> 
+1

他のコードを読むときに混乱を避けるために: '/'は明示的に要求されていません。あなたは好きな区切り文字をすべて選択できます。パターンの最初の文字は常に区切り文字として扱われます。 '〜'はこれを使い、 '/'の代わりに終了記号として必要です。 – KingCrunch

関連する問題