![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.1ベストアンサー
- 回答日時:
まず、そのテキストファイルでは、
aaa:111\n
bbb:222\n
ccc:333\n
444444
となっています。
テキストを読み込み、改行で区別するのに
「333\n444444」だけ改行を区別しないというのは面倒だと思います。
なので、444444の書き方が「xxx:xxx」になっていない場合のみ前の変数にくっつけるようにしなくてはいけません。
<?
$text = file("test.txt");
foreach($text as $value){
if(preg_match('/^[0-9A-Za-z]+:[0-9A-Za-z]+(\r\n|\r|\n)$/', $value)){
list($key,$var) = explode(":", $value);
$$key = $var;
}else{
$$key .= $value;
}
}
echo $aaa;
echo $bbb;
echo $ccc;
?>
こんな感じに・・・。
具体的に何がしたいのかわからないのですが、やり方を変えることをお勧めします。
No.3
- 回答日時:
テキストファイルのフォーマットは固定なのでしょうか?
もし固定でなければ、私が良く使うパターンですが
[data.php等の名前で保存]
<?php
$aaa="111";
$bbb="222";
$ccc="333\n4444";
?>
としてファイルを作り
必要なスクリプト内で
require_once("data.php");
として読み込めばそのまま変数として使用できます。
この回答へのお礼
お礼日時:2007/09/19 14:49
回答ありがとうございます。
返事が遅くなりまして申し訳ございません。
残念ながら固定のテキストなのです。
他の方法を考えてみたいと思います。
No.2
- 回答日時:
あまり効率的ではないかもしれませんがこんな感じでどうでしょう?
<?PHP
$handle = fopen("test.csv", "r");
while (($row = fgetcsv($handle, 1000, ":")) !== FALSE) {
$data[]=$row;
}
fclose($handle);
foreach($data as $array){
if(count($array)==2){
$var=$array[0];
$vars[$var]=$array[1];
}else{
$vars[$var]=$vars[$var]."\n".$array[0];
}
}
extract($vars);
?>
//test.csv
aaa:111
bbb:222
ccc:333
444444
55555
ddd:666
777
888
eee:
999
ちなみにこのようなデータ管理の仕方は致命的なバグを起こしかねないので
運用方法を考えなおしたほうがいいと思いますけどね・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- JavaScript JavaScript|特定URLだった時、特定の要素を変更するコードの書き方を教えてほしいです 2 2023/08/25 21:43
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- PHP WordpressのPHPを安全に編集する方法 1 2022/08/04 01:43
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- PHP PHP MySql ページング 2 2022/09/20 06:38
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
多次元配列を、1次元の配列にす...
-
連想配列でキーを利用して一部...
-
配列からプルダウン用のHTMLを生成
-
元号の表示
-
PHPでこのコード自体に意味は無...
-
マッチング処理(1:N)
-
PHPで、'=>'の意味が分かりませ...
-
PHPで変数名にハイフンを使うに...
-
csvファイルの不定長フィールド...
-
正規表現について
-
添え字が全て文字列のPHPの多次...
-
SELECT 使用時の bindValue の...
-
思うような連想配列ができない・・
-
配列の値を集めた1つの文字列...
-
プルダウンメニューにDBの内容...
-
配列をループでたくさん宣言し...
-
ヒアドキュメントの中のfor文
-
file_existsでファイル名の部分...
-
[PHP] fputcsv()関数でファイル...
-
PHP 多次元配列変数のデータ受...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPでこのコード自体に意味は無...
-
マッチング処理(1:N)
-
foreachで上限回数指定方法また...
-
PHP、{}記号の意味
-
PHPで変数名にハイフンを使うに...
-
PHPで連想配列のプルダウンメニ...
-
VB.NET で 二次元のハッシュは...
-
多次元配列を、1次元の配列にす...
-
配列からプルダウン用のHTMLを生成
-
Smartyでインクリメント
-
phpでforeachの中にforeachがあ...
-
foreachとかの勝手な省略?
-
Excel VBAでフィルター後の対象...
-
foreachで配列を、左から縦3列...
-
$_POST受信で必要項目のみを結...
-
リストボックス複数選択抽出方法
-
POSTで渡されるデータの数がわ...
-
ftokが動かない?
-
foreachの間にテーブルの<TR>を...
-
3つの連想配列を交互に代入し...
おすすめ情報