我的網站(rillist.com)使用php來獲取facebook URL。 我注意到很多用戶不小心將額外的字符(?fref = ts)粘貼到了id中,因爲它們只是複製/粘貼。刪除URL中的字符(php)
有沒有辦法強制某些短語出什麼PHP回聲? 謝謝
我的網站(rillist.com)使用php來獲取facebook URL。 我注意到很多用戶不小心將額外的字符(?fref = ts)粘貼到了id中,因爲它們只是複製/粘貼。刪除URL中的字符(php)
有沒有辦法強制某些短語出什麼PHP回聲? 謝謝
我已經爲我的腳本中的類似問題構建了這兩個函數。 他們可能是你的麻煩所需要的。
P.S.請嘗試更具體,並添加一些代碼URL的例子,以幫助教育局更好地理解你想要做的事情。
# Removing param from QUERY_STRING.
function unkey_querystring($query_string, $key) {
$query_array = array();
parse_str($query_string, $query_array);
unset($query_array[$key]);
$query_string = http_build_query($query_array);
return $query_string;
}
# Remove param from URL.
function unkey_address($url, $key) {
$query_string = substr(strstr($url, "?"), 1);
$base_url = str_replace($query_string, "", $url);
$query_string = unkey_querystring($query_string, $key);
return $base_url.$query_string;
}
另一個問題是,我的網址看起來像這樣: http://rillist.com/?id=el.tee 和不受歡迎的url看起來像這樣: http://rillist.com/??id = el.tee?fref = ts – user1576819
你的意思是rillist.com/?id=el.tee&fref=ts有幾個字符串函數,你可以解決所有的麻煩。 http://php.net/manual/en/ref.strings.php – transilvlad
你可以做到這一點使用正則表達式:
$bad_url = "rillist.com/?id=el.tee?fref=ts";
$good_url = preg_replace('/(.+\?[^?]+)\?.*/sim', '$1', $bad_url);
據我瞭解,你想要做的事這樣的:
$url = 'http://facebook.com/page?test=yes&fref=ts'; // the facebook URL
$_MGET = parse_url($url); // split the URL into path, query and host
$_MGET = '?'.$_MGET['query']; // re-set $_MGET with a better query
if(strpos($_MGET, "fref=ts") > 0) { // find out if their is "fref=ts"
$before_fref = $_MGET[strpos($_MGET, "fref=ts")-1]; // get character before "fref=ts"
$_MGET = str_replace(($before_fref == "?" ? "fref=ts&" : "&fref=ts"), "", $_MGET); // replace "fref=ts" according to previous char
}
echo $_MGET; // echo new url
// unset
unset($_MGET);
unset($before_fref);
(這個作品,不被這個壞變量名對不起)
所以你要去掉URL中'?'後面的所有內容? –
是的,甚至包括? – user1576819
strpos substr ..你試過了嗎? – transilvlad