2009-08-29 110 views
1

如果我提交表单后有<form action='./search' method='get'>
<input type='text' name='keyword' value='this is the search term' />

,它使我/search?keyword=this%20is%20the%search%20term

我应该使用什么样的正则表达式来捕捉URL的这种形式,它改写为
/search-this_is_the_search_term具有参数的url的正则表达式是什么?

回答

1

首先urldecode搜索字符串,然后用下划线替换空格。例如: -

$str = "this%20is%20the%search%20term"; 
$decoded = urldecode($str); 
$final = str_replace(' ', '_', $decoded); 

你可以做同样的使用preg_replace只有更可靠地正则表达式,你可能需要删除多个连续的空格:

$str = "this%20is%20the%search%20term"; 
$decoded = urldecode($str); 
$final = preg_replace("/\s+/", "_", $decoded);