2012-09-21 60 views
1

什麼是從URL中只得到B005PB3YHU一部分這樣 的最佳方式: http://www.amazon.com/Designer-Bow-Ties-Y306/dp/B005PB3YHU%3FSubscriptionId%3DAKIAIM6KP3HMBKZXA2EA%26tag%3Dmenbowtie-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB005PB3YHU獲取從URL字符串中的字符後

+1

它實際上應該是B005 ...,沒有前面的'D',因爲它是'%3D'符號的一部分。 – raina77ow

+0

是的,你是對的,對於這個錯誤我很抱歉 – Zaki

回答

1

建立在@ jimp的答案上,你需要首先urldecode來改變%##對於PHP理解的東西:

$url = 'http://www.amazon.com/Designer-Bow-Ties-Y306/dp/B005PB3YHU%3FSubscriptionId%3DAKIAIM6KP3HMBKZXA2EA%26tag%3Dmenbowtie-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB005PB3YHU'; 
# urldecode will remove the %## encoding, and make the url look like: 
# http://www.amazon.com/Designer-Bow-Ties-Y306/dp/B005PB3YHU?SubscriptionId=AKIAIM6KP3HMBKZXA2EA&tag=menbowtie-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B005PB3YHUB005PB3YHU 
$query = parse_url(urldecode($url), PHP_URL_QUERY); 
parse_str($query, $parts); 
echo $parts['creativeASIN']; 
+0

是的。我認爲他的腳本中的URL將在此步驟之前準備好。你的觀點是有效的。 +1 – jimp

+0

我實際上只是添加了不在原始答案中的'parse_url'函數,然後在測試時意識到它不起作用。並不意味着只是複製你的答案;) – ernie

+0

優秀的工作人員非常感謝 – Zaki