2011-11-13 20 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

快乐编码