
PHPは超初心者です。
本を2冊とインターネットで勉強し、コーディングを開始したところ、
理由がわからないエラーに遭遇し、身動きがとれません。
Parse error: syntax error, unexpected T_STRING in ************* on line 102
単に代入でのエラーなので、基本的な事なのかな? と感じておりますが、
どれだけ調べても解決できません。
ご教示いただけたら幸いです。
■内容
・サーバー上のテキストファイル($df)を1行ずつ読み出し、”:”コロンで分割しています。
分割された1カラム目が、”dname”であれば、2カラム目の内容を変数”$dn_in”に代入し、
後でその内容を使ってデータ処理をしたいところ、シンタックスエラーで止まってしまいます。
因みに、問題の行をコメントアウトして、printで確認してみると、ちゃんと分割されて、
ターゲットの2カラム目の内容が表示されます。
また、後のデータ処理とは、ファイルクローズ後に別ファイルの文字列変換に利用する為、
その処理まで対象の文字列を確保しておくつもりです。
/////////////////////////////////////////////////////////////
$fp2 = fopen($df,'r');
if($fp2){
while(!feof($fp2)){
$page1_from = fgets($fp2);
$string1 = ":";
//下は全角のコロンで分割
$page1_to = explode(":", $page1_from);
if(preg_match('/dname/',$page1_to[0])) {
$dn_in = $page1_to[1]; // ←この行でエラー
print "$page1_to[1]";
print "$dn_in";
}
}
}
fclose($fp2);
/////////////////////////////////////////////////////////////
以上、よろしくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
$dn_in = $page1_to[1];
セミコロンが大文字になっている。
早速のご回答、ありがとうございました。
>セミコロンが大文字になっている。
悲しいことに、これが原因でした。
ここを半角に修正したところ、きちんと動作しました。
あ~、情けないです。 半日も停滞してました。トホホ。。。
回答をして頂いたお二方、本当にありがとうございました。
No.1
- 回答日時:
print "$page1_to[1]";
↓
print "{$page1_to[1]}";
配列の要素等を変数展開させたいときはブレス記号でくくらないとパースエラーになります。
というか変数展開をするときは原則全てブレスでくくった方が見やすいし、PHPの実行速度も僅かですが速くなるのでそうすべきです。
というかこれ変数展開させるまでもないですね。
print $page1_to[1];
で十分。
私ならfile_get_contents関数で一気に読みこんで、そこからpreg_match_allで一気に抽出して、こう書きますかねぇ・・・
http://ideone.com/kKPeTG
早速のご連絡、ありがとうございました。
ところで、エラーになっている行は、ご連絡頂いた行の一つ上なのですが、
同様の"{"で、代入出来るということでしょうか?
とりあえず、
$dn_in = {$page1_to[1]};
としてみましたが、
Parse error: syntax error, unexpected '{' in ********************** on line 102
となってしまいました。
また、http://ideone.com/kKPeTG
のように、
file_get_contents関数で一気に読みこんで、そこからpreg_match_allで・・・・
を行ってみると、エラーはなくなりましたが、
print_r($matches[1]);
があるにもかかわらず、何も表示されませんでした。?
んん~、PHP難しいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[php初心者]サイトを見てデータ...
-
あらゆる例外に対応できるエラ...
-
qmailによるメールの受信について
-
Call to undefined method RDBM...
-
正規表現での最後尾のバックス...
-
ASPをPHPに移植したいですが、...
-
ファイル内でのini_set
-
phpでこの記述をもっと簡単に書...
-
トランザクションが原因?DBに...
-
クラスの中でincludeするとき、...
-
Fatal error: Call to undefine...
-
SoftBankにメール送信できない
-
.forwardを利用した、メールを...
-
mb_send_mail でスパム扱いとなる
-
Fatal error
-
Fatal error:について
-
Wordpress、カスタム投稿の管理...
-
ロケットBBSについて
-
php.exeが強制終了されてしまう
-
PHPの会員登録システムのエラー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォントの色を変えるには?
-
PHPでネットワークドライブのop...
-
トランザクションが原因?DBに...
-
PHPでfatal errorが出ても無視...
-
PHP8を使うと、大量のWarningが...
-
「@$変数」の「@の意味は?」
-
PHPで、エラーがない場合のみ画...
-
関数の引数に未定義の変数を渡...
-
PHPにて外部サイト内容が取得不...
-
php7のhtmlentitiesはEUC-JPを...
-
phpのエラー(T_LNUMBER)について
-
SELECTの値を保持する
-
@fileとは
-
\\x00 でエラー
-
ある条件に当てはまったときに...
-
bindValueエラー
-
error_reporting(0);にも関わら...
-
パースエラーとは?
-
require_once で読み込まれたか?
-
Localeクラスについて
おすすめ情報