2012-06-29 75 views
1

我試圖找出最佳的方式來灑以下URL字符串:字符串分割到變量PHP

區域FFFFFF_miles-100_profession的web +開發

主要分爲以下:

$area = "FFFFFF"; 
$miles = 100; 
$profession = "web developer"; 

但我有一個腦袋,並不能真正找出最有效的方式來做到這一點。有什麼建議麼?

謝謝。

CNC中我可以佔任何缺失值,比如做:

區域FFFFFF_miles-_profession的web +開發

缺少英里等

回答

4
$params = explode('_', $input); 
foreach($params as $param) { 
    $kv = explode('-', $param); 
    ${$kv[0]} = str_replace('+', ' ', $kv[1]); 
} 

這也解釋了缺失值。

+1

這是最正確的答案 – Yooda

+0

似乎工作只是我需要什麼,謝謝,有幾個答案几乎相同,所以感謝所有人:) – user1380591

2

您可以使用preg_split:

preg_split("/[_-]/",...); 
+0

這分裂,但它不能在_variables_分裂,仍然需要擴大 – Ben

+0

輝煌。沒想到這一點。任何方式我可以說明這樣的東西:area-FFFFFF_miles-_profession-web + developer(例如,缺少英里數值? – user1380591

+0

我不明白你的意思。英里是不是與你的字符串丟失 – dynamic

0

事情是這樣的:

$paramsStr = 'area-FFFFFF_miles-100_profession-web+developer'; 

$parts = explode('_', $paramsStr); 
foreach($parts as $part) { 
    $pair = explode('-', $part); 
    ${$pair[0]} = $pair[1]; 
} 
+0

該死的,這是一種比賽嗎? > _ < 和@SiGanteng,你還有'$ {$ kv [1]}',你只需要$ kv [1] – Niemand