打开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

解决方案 »

  1.   

    <?php$fb= file("a.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获取到的所有关键词 因为卡在这里所以后面的没写  求帮看看 怎么回事啊
      

  2.   

    你的
     $fb = file("a.txt");//把整个文件读入一个数组中
    在得到的数组 $fb 的每个成员最后(即拆分后的关键字的尾部至少会有一个换行符
    而待替换的文件中也是这样的吗?
    如果不是,那么如何能匹配到?
      

  3.   


    我在$sb1="$sb[1]"后面加了
    $sb1=str_replace("\r\n","",$stb1); 现在输出的全是乱的了
      

  4.   

    $fb = file("a.txt", FILE_IGNORE_NEW_LINES);

    $fb = array_map('time', file("a.txt"));
    都可去掉回车换行符现在输出的全是乱了,这很正常!
    因为你原来实际什么都没做,而现在做了,但做错了
    你仔细看看你的文件内容替换是否符合你的替换要求
    总之反正我是没看懂你的替换要求
      

  5.   

    就是从一个a.txt读取 标签和关键字  然后 在  b.txt(文章)查找有无 a.txt里获取到的关键字  有就替换成关键字前面对应的标签