簡體   English   中英

php preg_match查找網址

[英]php preg_match find url

我可以獲得完整的頁面資源。 像這樣:

&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&

如何僅獲取網址240鏈接http://cs518313v4.vk.me/u187298368/videos/c733ac6e5c.240.mp4和網址360鏈接http://cs518313v4.vk.me/u187298368/videos/c733ac6e5c.360.mp4

一種可能的方法是僅使用parse_str函數來解析字符串:

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

關鍵是,PHP開發人員已經解決了此任務,並且對解決方案進行了測試。 相反,發明自己的解決方案幾乎沒有意義。

使用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

雖然不確定這是否是最好的方法,但它是否有效。

如果這是您的用例,請嘗試:

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

但這是期待的

  1. 每個URL末尾的與號
  2. 沒有單獨的URL包含查詢參數,例如“?p1 = v1&p2 = v2”。

從您的來源看來,這些網址似乎由&符分隔,就好像它們是URL查詢參數一樣。 也許像(&| \\ s)之類的東西可以捕捉到最后一個URL,且后面沒有“&”符號。 這完全取決於您所期望的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM