2010-11-21 61 views
0
$value = 'http://www.mydomain.com/this-is-page-one' 

我有我稱爲「網址」 MySQL的表,裏面存儲不同的URL,像場:的網址相匹配的MySQL

http://www.bdsada.com/dsadsfsaf 
http://www.comddsad.com/dsadacsdfs 

我想最適合我的價值與網址一起。 - 做一個SQL查詢 也許是重複字母的數量。

請舉個實際的例子.... pleaseee

+1

http://dev.mysql.com/doc/refman/5.1/en/string-comparison-functions.html#operator_like – 2010-11-21 16:51:28

+1

當你說「最佳匹配」時,你的意思是匹配像* www.bdsada。 com *帶有* bdsad *的輸入,或者您是指基於Levenshtein距離的最佳匹配?你能舉一個輸入與預期輸出的例子嗎? – netcoder 2010-11-21 17:36:55

+0

基於Levenshtein距離 – webmasters 2010-11-21 19:49:28

回答

1

不知道你的「最佳匹配」的意思是什麼。假設您正在將上述URL(http://www.website.com/extension)存儲在數據庫中。此外,輸入可能包含或不包含「http://」,「www。」或URL中的任何其他GET變量。在提交數據庫查詢字符串之前,我會執行以下操作:

從URL中去除「http://」或「https://」。

$valueStrip = explode("//",$value); 
$value = $valueStrip[1]; 

要去掉任何GET變量

$valueStrip = explode("?",$value); 
$value = $valueStrip[0]; 

此外,還要確保你清潔任何SQL注入攻擊,這應該工作

$value = mysql_real_escape_string($value); 

讓我們假設 'URL' 是表名和'domainName'是實際域名的列名。所以,您的查詢可能看起來像這樣

$query = mysql_fetch_array(mysql_query("SELECT url FROM domainName WHERE url LIKE '%$value%'")); 

我應該注意到我沒有測試代碼,它可以變得更高效。