$domain_parts = explode('.', preg_replace('/\s+/', '', $_GET['domain']));
$sld = $domain_parts[0];
我想將第1行和第2行的功能分爲1行代碼。用一行代碼分解並返回數組的第一個元素
什麼$_GET['domain']
提供的一個例子是google.com
什麼是一條線要做到這一點最徹底的方法。
$domain_parts = explode('.', preg_replace('/\s+/', '', $_GET['domain']));
$sld = $domain_parts[0];
我想將第1行和第2行的功能分爲1行代碼。用一行代碼分解並返回數組的第一個元素
什麼$_GET['domain']
提供的一個例子是google.com
什麼是一條線要做到這一點最徹底的方法。
你也可以不用正則表達式這樣
$sld = str_replace(' ','',substr($_GET['domain'],0,strpos($_GET['domain'],'.')));
這會更好的表現明智,正確嗎? – user1512405
是的。 'preg_replace'需要很多資源。而不是隻替換一個空間。如果你不需要正則表達式的力量,不要使用'preg_'函數。 – bansi
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
你可以像list
list($domain_parts) = explode('.', preg_replace('/\s+/', '', $_GET['domain']));
這將直接返回$domain_parts[0]
。你試試也可以用strtok
來嘗試,如
echo strtok(preg_replace('/\s+/', '', $_GET['domain']), '.');
看到這個STRTOK
你覺得哪種性能更好? – user1512405
第一個更好,但兩個都會工作 – Gautam3164
什麼是與擬合的最功能到一個行癡迷? – Barmar
或者你可以隨時安裝PHP 5.4並且只寫'explode(...)[0]'。 – Cthulhu