2014-05-15 3 views
0

제목에서 알 수 있듯이에 재 작성 문을 추가하여 URL 중간의 동적 부분 문자열을 대체합니다. 또한, 모든 "|" "+"로 변경됩니다. = ""t "URL의 동적 부분 문자열 재 작성

www.domain.com/?q=string1+string2+string3 

기본적으로, 문자열이 시작을 교체하고 끝나는 :

예를 들어,이 URL을

www.domain.com/?t=p&c=some+string&skus=string1|string2|string3 

을 그리고로 리디렉션하고 싶습니다 skus ".

이것이 가능합니까? PHP로 이것을 더 쉽게 할 수 있습니까?

답변

0

당신은 가능하면이 트릭을

$url = "www.domain.com/?t=p&c=some+string&skus=string1|string2|string3"; 

echo "<pre>"; 
print_r($decoded = parse_url($url)); 
print_r($parsed = queryToArray($decoded['query'])); 
$parms = explode("|", $parsed['skus']); 
print_r($parms); 
echo "</pre>"; 


function queryToArray($qry) 
{ 
    $result = array(); 
    //string must contain at least one = and cannot be in first position 
    if(strpos($qry,'=')) { 

    if(strpos($qry,'?')!==false) { 
     $q = parse_url($qry); 
     $qry = $q['query']; 
     } 
    }else { 
      return false; 
    } 

    foreach (explode('&', $qry) as $couple) { 
      list ($key, $val) = explode('=', $couple); 
      $result[$key] = $val; 
    } 
    return empty($result) ? false : $result; 
} 

the result should look like this 

    Array 
(
    [path] => www.domain.com/ 
    [query] => t=p&c=some+string&skus=string1|string2|string3 
) 
Array 
(
    [t] => p 
    [c] => some+string 
    [skus] => string1|string2|string3 
) 
Array 
(
    [0] => string1 
    [1] => string2 
    [2] => string3 
) 
0

사용 PHP 내장 함수를 할 것 parse_url 기능

를 사용할 수 있습니다. 따라서이 경우에는 parse_url과 parse_str을 사용하십시오.

$parts = parse_url($url); 
parse_str($parts['query'], $query); 
$params = explode('|', $query['skus']);