2012-06-29 70 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