2013-08-03 67 views
0
$domain_parts = explode('.', preg_replace('/\s+/', '', $_GET['domain'])); 
    $sld = $domain_parts[0]; 

我想將第1行和第2行的功能分爲1行代碼。用一行代碼分解並返回數組的第一個元素

什麼$_GET['domain']提供的一個例子是google.com

什麼是一條線要做到這一點最徹底的方法。

+1

什麼是與擬合的最功能到一個行癡迷? – Barmar

+1

或者你可以隨時安裝PHP 5.4並且只寫'explode(...)[0]'。 – Cthulhu

回答

0

你也可以不用正則表達式這樣

$sld = str_replace(' ','',substr($_GET['domain'],0,strpos($_GET['domain'],'.'))); 
+0

這會更好的表現明智,正確嗎? – user1512405

+0

是的。 'preg_replace'需要很多資源。而不是隻替換一個空間。如果你不需要正則表達式的力量,不要使用'preg_'函數。 – bansi

0
list($domain_parts) = explode('.', preg_replace('/\s+/', '', $_GET['domain'])); 

$domain_parts將包含數組的第一個元素。

你可以得到第二個元素是這樣的: -

list(,$domain_parts) = explode('.', preg_replace('/\s+/', '', $_GET['domain'])); 

詳情請參閱list()

或者你可以這樣做: -

$domain_parts = explode('.', preg_replace('/\s+/', '', $_GET['domain']))[0]; 

,如果你有PHP> = 5.4

2

你可以像list

list($domain_parts) = explode('.', preg_replace('/\s+/', '', $_GET['domain'])); 

這將直接返回$domain_parts[0]。你試試也可以用strtok來嘗試,如

echo strtok(preg_replace('/\s+/', '', $_GET['domain']), '.'); 

看到這個STRTOK

+0

你覺得哪種性能更好? – user1512405

+0

第一個更好,但兩個都會工作 – Gautam3164

相關問題