ホームページ  >  記事  >  バックエンド開発  >  PHPが条件に従ってtxtの内容を読み取る、それを解決する方法

PHPが条件に従ってtxtの内容を読み取る、それを解決する方法

WBOY
WBOYオリジナル
2016-06-13 13:27:37839ブラウズ

PHP は条件に従って txt コンテンツを読み取ります。
これで、次の内容のメモ帳が作成されました。
論文
BioPublisher が発行するすべてのジャーナルの研究論文は、無料でオンラインで即時かつ永続的に利用可能です。多くのジャーナルでは、レビューや論文レポートなどの他のコンテンツを閲覧するには、機関または個人の購読が必要です。
about
tel:****** ** ************** 住所:********************************** ** *****
私は今、PHP を使用してこのメ​​モ帳を読んでいます。このメモ帳には優れた段落があり、各段落の前にタイトルがあるためです。今、前のタイトルを通して別の内容を読みたいと思っています。


専門家のアドバイスをお願いします。

-----解決策--------------------------------
ロジックが間違っています。爆発後の配列要素に @
が含まれていません。

PHP コード
 のように変更します。
<?php
$file_name="ディレクトリ.txt";
$fp=fopen($ファイル名,'r');
while(!feof($fp)) //すべてのファイルを読み取る必要があります
{
    $buffer=fgets($fp); // 行を取得します。長さは追加しません。
    if(preg_match('/s*@/i', $buffer)){// 通常の使用
        echo "これはタイトルです<br>";
        echo $buffer."<br>";
    }それ以外{
        echo "これは本体です<br>";
        echo $buffer."<br>";
    }
}
fclose($fp); // ファイルストリームを閉じる
?>
<br><font color="#e78608">------解決策------------------</font><br>
//タイトルの前に @ 記号を追加し、これを使用してタイトルを区切ります。@ は上部の大括弧内にある必要があることに注意してください<br><br>
PHP コード
$find = 'about' //探しているタイトル
$file_name="ディレクトリ.txt";
$fp=fopen($ファイル名,'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); //ファイルストリームを閉じる
コンテンツをエコーし​​ます。"<br>";
<br><font color="#e78608">------解決策---------</font><br>タイトルが固定パターンの場合は1行読んでください, 次に、タイトルが <br><br> であるかどうかを確認します。たとえば、この行にはスペースが含まれていてはならず、長さが 1 未満である必要があります。
<br><font color="#e78608">------解決策------------------</font><br>ヘルプサポート....<br> <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。