首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php按条件读取txt广本内容,该如何解决

2012-06-14 
php按条件读取txt广本内容我现在有个记事本,内容:articlesThe research articles in all journals publish

php按条件读取txt广本内容
我现在有个记事本,内容:
  articles
  The research articles in all journals published by BioPublisher are 'Open Access'. They are immediately and permanently available online without charge. A number of journals require an institutional or a personal subscription to view other content, such as reviews or paper reports. Free trial subscriptions to these journals are available.
  about
  tel:********************** address:*************************************
 我现在就用PHP读取这个记事本,因为这个里有好段,每段前都有一个标题,我现在就想通过前面的标题,读取出不同的内容。


  请高手给出指教。

[解决办法]
逻辑不对,explode之后的数组元素是不包含@的
修改如下:

PHP code
<?php$file_name="dir.txt";$fp=fopen($file_name,'r');while(!feof($fp)) //文件全部要读完{    $buffer=fgets($fp); //获得一行,不要加长度    if(preg_match('/\s*@/i', $buffer)){// 用正则        echo "This is title<br>";        echo $buffer."<br>";    }else{        echo "This is body<br>";        echo $buffer."<br>";    }}fclose($fp); //关闭文件流?>
[解决办法]
//标题前加个@符号,用这个来分隔,注意 @ 要顶格

PHP code
$find = 'about'; //要找的标题$file_name="dir.txt";  $fp=fopen($file_name,'r');$title = '';$content = '';while($buffer = fgets($fp,1024)) //文件不一定要读完{  if($buffer{0} == '@') { //检查是否为标题    if($title == $find) break; //是要的则退出    $title = trim($buffer, '@'.PHP_EOL); //保存标题    $content = ''; //清空内容  } else $content .= $buffer; //保存内容}fclose($fp); //关闭文件流echo content."<br>";
[解决办法]
如果标题有固定规律的话,读一行,然后检查是不是标题

比如这一行要没有空格 长度少一多少 等等
[解决办法]
帮忙顶下....

热点排行