2012-09-21 61 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