PHP str_替换不传递数据

PHP str_替换不传递数据,php,Php,我正在尝试从网站中提取HTML代码 首先,我将HTML插入到一个.txt文件中。然后,另一个页面在str_替换所选正则表达式时打开txt文件 我一直在下面的脚本中获取资源ID#4。 我不知道为什么信息没有通过。我生锈了 我想修剪.txt文件中选定的数据,并将其插入另一个.txt文件 <?php set_time_limit(0); error_reporting(E_ALL); $fp = fopen('newfile2.txt', 'r'); echo '$fp is resourc

我正在尝试从网站中提取HTML代码

首先,我将HTML插入到一个.txt文件中。然后,另一个页面在str_替换所选正则表达式时打开txt文件

我一直在下面的脚本中获取资源ID#4。 我不知道为什么信息没有通过。我生锈了

我想修剪.txt文件中选定的数据,并将其插入另一个.txt文件

<?php
set_time_limit(0);

error_reporting(E_ALL);

$fp = fopen('newfile2.txt', 'r');
echo '$fp is resource = ' . (is_resource($fp) ? 'true': 'false');

$re = '/(\n*.*+)+\1<tr>\n.*<td bgcolor=\"#ffffcc\">/'; 
$subst = "<tr><td>"; 

$result = str_replace( $re, $subst, $fp);

$put = file_put_contents("newfile3.txt", $result);

print_r($result);
echo 'testjn';

?>

fopen
返回资源,而不是字符串。您需要将
fread
与此或
文件获取内容一起使用

另外,
str\u replace
不适用于正则表达式。您可以使用
preg\u replace

$fp = file_get_contents('newfile2.txt');
$re = '/(\n*.*+)+\1<tr>\n.*<td bgcolor=\"#ffffcc\">/'; 
$subst = "<tr><td>"; 
$result = preg_replace( $re, $subst, $fp);
$put = file_put_contents("newfile3.txt", $result);
print_r($result);
echo 'testing';
$fp=file\u get\u contents('newfile2.txt');
$re='/(\n**+)+\1\n.*/';
$subst=“”;
$result=preg_replace($re,$subst,$fp);
$put=文件内容(newfile3.txt,$result);
打印(结果);
回声“测试”;
您还应该研究如何使用HTML/XML解析器


下面是您的正则表达式当前的工作方式。这个问题似乎与正则表达式无关。

preg_replace也一样?我有一些代码供以后需要('simple_html_dom.php')$表=数组()$html=file_get_html('newfile2.txt');foreach($html->find('tr')as$row){$calls=$row->find('td',0)->明文;$clast=$row->find('td',1)->虽然是纯文本,但它是一个巨大的html文件,并且收集了太多。我只是想在以后使用这个脚本来修剪代码。我已经在下面发布了一个答案,假设正则表达式可以工作。看看这个。我不知道你试图解析什么,所以重新编写正则表达式或显示解析器示例将非常困难。有什么疑问吗答案是什么?