2013-01-16 80 views
1

目前我正在試圖讓我的頭周圍的一些基本的PHP字符串函數。我目前使用此代碼,確定是否在足夠長的時間例如爲:檢查字符串函數

if (strlen($_GET['name']) < 3) { 
     echo 'First Name should be at least 3 characters long!'; 
     exit; 
    } 

而這只是正常輸入的用戶名。我應該使用哪個字符串函數,但如果我想檢查一個特定的名稱?例如。一旦有人在表單字段中輸入特定的單詞,我想觸發一條消息。

一些專家的意見,將不勝感激。

+0

如果要觸發一個消息,馬上就應該考慮使用你不能這樣做的JavaScript,通過PHP沒有往返 – LoneWOLFs

回答

4

你並不需要一個功能。您可以使用if聲明和==

if ($_GET['name'] == 'Dave') 
{ 
    // user entered 'Dave' 
} 
+0

優秀的服務器 - 謝謝揚,這正是我一直在尋找。 – DaveMilan

5

60 PHP validation functions這個鏈接是一個外觀極好的資源。

對於你的情況作爲檢查的名稱,你可以使用類似:

if (strtolower($_GET['name']) === 'joe') { 
    // Do something for Joe 
} 

elseif (in_array(strtolower($_GET['name']), array('dave', 'bob', 'jane')) { 
    // Do something else for Dave, Bob or Jane 
} 

strtolower將確保上,下或混合大小寫的名稱將匹配。

+0

謝謝@PassKit - !很親切 – DaveMilan

+0

作爲@LawrenceCherone提到,它始終是很好的做法,以檢查變量可以既'空()'或'isset()函數'以防止如果變量消息盡顯你的日誌不可用。 – PassKit

2

if語句,或者如果你計劃要檢查多個名稱,switch()

switch($_GET['name']){ 
    case "Eric": 
     //Eric 
    break; 
    case "Sally": 
     //Sally 
    break; 
    case "Tom": 
     //Tom 
    break; 
    default: 
     //Unknown 
} 
+0

非常感謝! – DaveMilan

2

在使用前檢查$_GET['name']是否設置好。要回答你的問題的好辦法IMO是in_array(needle,haystack)

<?php 

if (!empty($_GET['name']) && strlen($_GET['name']) < 3) { 
     echo 'First Name should be at least 3 characters long!'; 
     exit; 
} 

//From a database or preset 
$names = array('Bob','Steve','Grant'); 
if(in_array($_GET['name'], $names)){ 
    echo 'Name is already taken!'; 
    exit; 
} 
?> 
+0

謝謝你的提高! – DaveMilan

1

您可以使用的strstrstristr(不區分大小寫)功能,如果想在一個句子中搜索特定的詞。

只需檢查php手冊爲strstrstristr