
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
composerをインストールしたい...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
【初心者】XAMPPのapacheの(恐...
-
phpのクラスメソッドの定義が長...
-
ファイルアップロードの上限を...
-
$_SESSIONについて教えて下さい。
-
Postgresの特定のカラムからス...
-
画像ファイルの名前をそのままU...
-
PHP8でWarning:Undefined varia...
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
SplFileObject を利用したとき...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLから受け取ったデータを連...
-
変数に格納された文字列でdefin...
-
先頭0で重複のない配列を作りたい
-
array関数につきまして
-
oreachで変数を用意せずにカウ...
-
関数をの引数について。
-
PHPの配列の出力について
-
配列からプルダウン用のHTMLを生成
-
規則性があるテキストをグルー...
-
forを使わずにforeach文のみで...
-
連想配列からの値の取り出し
-
POSTで渡されるデータの数がわ...
-
PHPでテキストファイルを読み込...
-
PHPで、'=>'の意味が分かりませ...
-
phpでforeachの中にforeachがあ...
-
php 2つの配列の内、片方を元に...
-
foreachで上限回数指定方法また...
-
POSTを配列として送信し、キー...
-
多次元配列の扱い方
-
PHPの構文で間違えが分からない
おすすめ情報