打开a.txt
txt格式为:<A href="http://www.baidu.com/manghuangji1" target="_blank" title="">心中4</A>,心中
<A href="http://www.baidu.com/manghuangji2" target="_blank" title="">挥之不去3</A>,挥之不去
<A href="http://www.baidu.com/manghuangji3" target="_blank" title="">王浩1</A>,王浩
<A href="http://www.baidu/manghuangji4" target="_blank" title="">厉害了2</A>,厉害了
<A href="http://www.baidu.com/manghuangji/554.html" target="_blank" title="">心中4</A>,心中读取每一行注:各个url都不相同数据 以逗号为分界 分隔成两部分 前面是 html 标签 即:
<A href="http://www.baidu.com/manghuangji" target="_blank" title="">心中4</A>
后面是关键字 即:心中遍历另外一个文件夹下所有txt txt内都是文章以数字命名比如1.txt 、2.txt
在文件夹内所有txt内查询(如果当前txt内已经被替换过八次也就是八个锚文本,则不查询这个txt跳到下一个 )是否包含有 a.txt读取到的关键字 如果有就替换 成 a.txt对应的逗号前面的标签
如果同一关键词在同一txt出现多次则只替换最前面一个关键词
如果第一个关键词与第二个关键在20字节以内则不替换
如果当前txt内超过八个被替换的标签则不跳到下个txt
$lines=count($fb);//读取a.txt获取行数 保存在$lines变量
$ti= fopen("a.txt","r");//打开a.txt
$txt = file_get_contents("../1.txt");//打开1.txt并读入字符串赋值给$txtwhile (!feof($ti))//循环直到a.txt末尾
{
$line = fgets($ti);//从文件指针中读取一行。
$sb=explode(',',$line);//以逗号为分割符 将一行分成数组的两个键值
$sb1="$sb[1]";//关键字赋值给$sb1
$sb0="$sb[0]";//html标签赋值给$sb0
$txt=preg_replace("/$sb1/","$sb0","$txt");//查看1.txt内有无关键字 如果有就替换成html标签后并重新赋值给$txt
echo $txt;//输出被替换后的a.txt
?>这是我写的代码 不管输出几次总是不能替换到 在a.txt获取到的所有关键词 因为卡在这里所以后面的没写 求帮看看 怎么回事啊
$fb = file("a.txt");//把整个文件读入一个数组中
在得到的数组 $fb 的每个成员最后(即拆分后的关键字的尾部至少会有一个换行符
而待替换的文件中也是这样的吗?
如果不是,那么如何能匹配到?
我在$sb1="$sb[1]"后面加了
$sb1=str_replace("\r\n","",$stb1); 现在输出的全是乱的了
和
$fb = array_map('time', file("a.txt"));
都可去掉回车换行符现在输出的全是乱了,这很正常!
因为你原来实际什么都没做,而现在做了,但做错了
你仔细看看你的文件内容替换是否符合你的替换要求
总之反正我是没看懂你的替换要求