2011-11-13 52 views
-1
指定的iframe鏈接

問題:
使用正則表達式

我需要確認IFRAME有下列格式中的一個類型的鏈接:

http://www.example.com/embed/*****11 CHARACTERS MAX.****?rel=0 

Starts with: http://www.example.com/embed/ 
Ends with: ?rel=0 
11 CHARACTERS MAX. means in this spot, there can any 11 characters. Don't go beyond 11. 

注:沒有指定的標籤確保在每一篇文章中。這取決於用戶如何使用編輯器。

我使用PHP


我用下面的線,以確保所有的標籤都排除在外,除了指定的那些:

$rtxt_offer = preg_replace('#<(?!/?(u|br|iframe)\b)[^>]+>#', '', $rtxt_offer); 
+0

請參閱:[在PHP中提取HTML中的所有文本和img標記。](http://stackoverflow.com/q/8021543/367456)(已關閉)。 – hakre

+0

[用PHP解析HTML的最佳方法]的可能重複(http://stackoverflow.com/questions/3577641/best-methods-to-parse-html-with-php) - 要點:考慮不要使用正則表達式解析HTML。 – hakre

+0

我忘了修復我的標題。 – user311509

回答

0

你寫,你只需要使用正則表達式來驗證鏈接值:

$doesMatch = preg_match('~^http://www.example.com/embed/[^?]{0,11}\?rel=0$~', $link); 

這並明確你問什麼。

要刪除標籤,請參閱strip_tags或使用HTML解析器來完成,這也將幫助您更好地獲取鏈接值。

在類似的問題/答案我發佈了一些示例代碼如何使用strip_tagsSimpleXMLElement在一起:Extract all the text and img tags from HTML in PHP

0

首先,有內置功能在PHP中爲您剝去標籤:http://php.net/manual/en/function.strip-tags.php不需要在這裏使用緩慢的正則表達式。

步驟,你需要解決你的問題:

  1. 解析這個文本DomDocument
  2. 獲取iframe節點從它
  3. 從iframe中獲取src屬性與parse_url
  4. 現在分析它您可以輕鬆檢查所有返回的組件parse_url

快樂編碼