过滤掉所有的iframe,但是除了src里面包含www.baidu.com的正则。
比如
$str = '<iframe src="http://www.baidu.com/adfadf/adfa" border="1"></iframe><iframe src="http://www.google.com" border="1"></iframe>';
$str = preg_replace('/正则/i', "", $str );
print $str;输出:<iframe src="http://www.baidu.com/adfadf/adfa" border="1"></iframe>
比如
$str = '<iframe src="http://www.baidu.com/adfadf/adfa" border="1"></iframe><iframe src="http://www.google.com" border="1"></iframe>';
$str = preg_replace('/正则/i', "", $str );
print $str;输出:<iframe src="http://www.baidu.com/adfadf/adfa" border="1"></iframe>
preg_match('/<iframe src="http:\/\/www.baidu.com.+<\/iframe>/isU',$str,$arr);
echo $arr[0];
匹配只是得到了这些符合要求的iframe而已,没有达到我的目的啊,目的是去掉不合法的iframe。
preg_match('/<iframe[^src]src="http:\/\/www\.baidu\.com[^"]*"[^\/]*\/iframe>/i', $str, $arr);
echo $arr[0];
$str = preg_replace('#<iframe.+www.baidu.com.+/iframe>#iU', "", $str );
print $str;<iframe src="http://www.google.com" border="1"></iframe>
我不是要取到 www.baidu.com的iframe,我是想去掉其他的iframe。因为这个字符串里面可能还会有别的文字信息。比如
$str = '测试文字测试文字<iframe src="http://www.baidu.com/adfadf/adfa" border="1">测试文字测试文字测试文字测试文字测试文字测试文字</iframe><iframe src="http://www.google.com" border="1"></iframe>';
$str = preg_replace('#<iframe[^src]*src="(?!http://www.baidu.com)[^"]*"[^/]*/iframe>#i', '', $str);
echo $str;