我正在尝试从网站中提取HTML代码。
首先,我将HTML插入.txt文件中。然后,另一个页面在str_replacing选择的正则表达式时打开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';
?>
答案 0 :(得分:1)
fopen
返回资源,而不是字符串。您需要使用fread
或file_get_contents
。
此外str_replace
不适用于正则表达式。您可以使用preg_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';
您也应该考虑使用HTML / XML解析器。 How do you parse and process HTML/XML in PHP?
以下是您的正则表达式目前的工作原理https://regex101.com/r/gD0wP7/1。这个问题似乎并不是关于正则表达式的。