PHP string streamのやり方
サイト移転のお知らせ2025年4月22日(火)ファンブログ終了です。それに伴いサイト移転します。
移転先: https://www.wcguru.net/
このページの移転先:https://www.wcguru.net/archives/184
PHPで文字列(テキスト)をストリームとして読み込みたい、fgetsのような感じでループさせながら1行ずつ処理したいっていう際に使えるやり方です。
実際のやり方は以下PHPソースコードの通りです。$txtはStringストリームとして扱いたいテキストを指定します。file_get_contentsで読み込んだテキストでもOKです。ここではヒアドキュメント形式で設定しています。テキストファイルから読み込む場合は、改行コードの違いに注意してくださいね。
読み込んだテキストを改行で区切り、配列に格納しています。ここでは変数に入れることなく、直にforeachで回しています。
これでテキストをStringストリームのように1行ずつ処理することが可能になります。$rowは配列の添え字なので0から始まることに注意してください。行番号ではないですよ。
PHP_EOLは、行末文字です。WindowsならWIndowsの改行コード、Unix系ならUnix系の改行コードを意味しています。
実際のやり方は以下PHPソースコードの通りです。$txtはStringストリームとして扱いたいテキストを指定します。file_get_contentsで読み込んだテキストでもOKです。ここではヒアドキュメント形式で設定しています。テキストファイルから読み込む場合は、改行コードの違いに注意してくださいね。
<?php
$txt = <<< EOM
1行目
2行目テキスト
3行目文字列
4行目文字列
EOM;
foreach( explode( PHP_EOL, $txt) as $row=>$line ){
// $rowは0から始まる番号です。
// $lineは1行ずつ文字列が入ってきます。
}
読み込んだテキストを改行で区切り、配列に格納しています。ここでは変数に入れることなく、直にforeachで回しています。
これでテキストをStringストリームのように1行ずつ処理することが可能になります。$rowは配列の添え字なので0から始まることに注意してください。行番号ではないですよ。
PHP_EOLは、行末文字です。WindowsならWIndowsの改行コード、Unix系ならUnix系の改行コードを意味しています。
- 初期費用0円(2022年8月4日に撤廃)
- 安定したサイト運営が可能(CPU/メモリ リソース保証 6コア/8GB~)
- 契約中は独自ドメインつき 独自ドメイン永久無料特典があります
- 最大10日間無料で、サーバーのお試し利用ができます
- ディスクキャッシュも高速 NVMe SSDを採用(300GB~)
- 大量アクセスでも安心 転送量は無制限
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7176393
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック