我可以在</a></div>
和<div class="toolz">
之间的标签中获取文字。结果是我之后有img
标签<br />
。
例如:
<img alt="TEXT" title="TEXT"src="IMAGE LINK" /><br />
如何使用preg_replace从中删除?
<meta charset='UTF-8' />
<?php
$handle='http://www.namefa.ir/Names.asp?pn=4&sx=M&fc=%D8%A2';
preg_match_all('/<\/a><\/div>(.*?)\s*<div[^>]+class="toolz"[^>]*>\s*/si', file_get_contents($handle), $matching_data);
$default = preg_replace('/<img[^>]*>(.*)\/><br />/is', "", $matching_data);
echo'<pre>';print_r($default);echo'</pre>';
?>
答案 0 :(得分:1)
我认为,您的代码存在一些逻辑错误。您必须使用循环来迭代搜索结果并替换原始内容中的标记。你现在做什么,似乎有点无用。
$handle='http://www.namefa.ir/Names.asp?pn=4&sx=M&fc=%D8%A2';
$content = file_get_contents($handle);
preg_match_all('/<\/a><\/div>(.*?)\s*<div[^>]+class="toolz"[^>]*>\s*/si', $content, $matching_data, PREG_SET_ORDER);
foreach ($matching_data as $match) {
$replace = preg_replace('/<img[^>]*>(.*)\/><br />/is', "", $match[0]);
$content = str_replace($matching_data[0], $replace, $content);
}
echo'<pre>';print_r($content);echo'</pre>';
似乎你的内部正则表达式替换图像是错误的..至少它找不到东西 - 你确定,<br />
是正确的,或者你只是想找到一个简单的换行符< / p>