0

I can get a full page source. It similer like this:

&url240=http://cs518313v4.vk.me/u187298368/videos/c733ac6e5c.240.mp4&url360=http://cs518313v4.vk.me/u187298368/videos/c733ac6e5c.360.mp4&jpg=http://cs518313v4.vk.me/u187298368/video/l_292f9ac5.jpg&

How can I get only url 240 link http://cs518313v4.vk.me/u187298368/videos/c733ac6e5c.240.mp4 and url 360 link http://cs518313v4.vk.me/u187298368/videos/c733ac6e5c.360.mp4

4

3 回答 3

3

一种可能的方法是仅使用parse_str函数来解析字符串:

$arr = [];
parse_str($url, $arr);
echo $arr['url240'];
echo $arr['url360'];

关键是,PHP 开发人员已经解决了这个任务,并且已经测试了解决方案。相反,发明自己的解决方案毫无意义。

于 2013-05-18T10:05:52.267 回答
1

使用 preg_match:

$string = '&url240=http://cs518313v4.vk.me/u187298368/videos/c733ac6e5c.240.mp4&url360=http://cs518313v4.vk.me/u187298368/videos/c733ac6e5c.360.mp4&jpg=http://cs518313v4.vk.me/u187298368/video/l_292f9ac5.jpg&';
preg_match("/&url240=(.*?)&/", $string, $A);
preg_match("/&url360=(.*?)&/", $string, $B);

$urla = $A[1]; // url 240
$urlb = $B[1]; // url 360

虽然不确定这是最好的方法,但它确实有效。

于 2013-05-18T10:17:21.447 回答
0

如果这是您的用例,请尝试:

$search="url240";
preg_match("/$search=([^&]*)&/",$page,$matches);
$url240=$matches[1];

但这是期待

  1. 每个 URL 末尾的 & 符号
  2. 没有包含诸如“?p1=v1&p2=v2”之类的查询参数的单个 URL。

从您的来源看来,url 由 & 号分隔,就好像它们是 URL 查询参数一样。也许像 (&|\s) 之类的东西可以捕获最后一个不会跟 & 符号的 URL。这完全取决于您期望的数据。

于 2013-05-18T10:57:52.807 回答