ファイルの中に記述されている1行目を取得し、画面に表示させたい
- 評価
- クリップ 0
- VIEW 1,886
Macでワードで、
1行目
2行目
3行目
と文字を打ち、txtにして保存しました。(ファイル名:phptanaka)
次にviエディタで下記を打ち込みました。
<?php
$fp= fopen("phptanaka", "r");
$lines = fgets($fp);
fclose($fp);
$hoge = file("phptanaka");
print $hoge[0];
?>
Warning: fopen(phptanaka): failed to open stream: No such file or directory in /Users/tanakaakio/aaa.php on line 3
Warning: fgets() expects parameter 1 to be resource, boolean given in /Users/tanakaakio/aaa.php on line 5
Warning: fclose() expects parameter 1 to be resource, boolean given in /Users/tanakaakio/aaa.php on line 7
Warning: file(phptanaka): failed to open stream: No such file or directory in /Users/tanakaakio/aaa.php on line 9
追記:
<?php
$fp= fopen("/Users/tanakaakio/Desktop/phptanaka.txt","r");
$line = fgets($fp);
fclose($fp);
$hoge = file("/Users/tanakaakio/Desktop/phptanaka.txt");
print $hoge[0];
?>
エラーは出なくなりましたが「?P?s??」と表示されます。
改めて何が間違っているのでしょうか。ご回答願います。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
ひとまず2018/07/10 12:04時点の同コード、同ファイルで試しましたが、再現しませんでした。
提示内容ですと「1行目」と出力されます。
質問内で
Macでワードで、~~~~と文字を打ち、txtにして保存しました。
とあります。
ファイル名合ってます?
私の方ではコードに合わせて「phptanaka」という拡張子なしのファイルを作成して確認しました。
ワードで保存したなら.docxなどでしょうし、txtで保存であれば.txtになっているはずです。
ファイルを読み込む前にファイルの存在チェックを入れてみてください。
※自身が把握しているファイルであってもお作法として入れておくべきと思います。
<?php
$filename = "phptanaka";
if(!file_exists($filename)) die("ファイルが存在しません:".$filename);
$fp= fopen($filename, "r");
$lines = fgets($fp);
fclose($fp);
$hoge = file($filename);
print $hoge[0];
これで、[ファイルが存在しません:{ファイル名}]と出力されれば、
パスが間違っているかファイルが存在しないかどちらかです。
ファイルを保存した場所をきちんと指定できていますか?その場所にそのファイルがありますか?
確認してみてください。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
print の行末にセミコロンがないですね。
これで直るかはわかりませんが。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
-1
[ 1 ]
で空白を空けているのが問題では。
[1]
と詰めて書けばOK。
もっとも、この場合、他の文字列と混ぜて出力するわけではないので、ダブルクォーテーションで囲む必要はないですね。
print $hoge[ 1 ];
また1行目を出力したいのであれば、[1]ではなく[0]い
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.21%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
退会済みユーザー
2018/07/09 18:39
提示されたコードと実行結果が矛盾しています。提示されたコードを実行した結果、提示されたエラーは出ません。
bitcoiner2045
2018/07/09 18:43
Parse error: syntax error, unexpected '"' in /Users/tanakaakio/aaa.php on line 10でした!すいません!
退会済みユーザー
2018/07/09 18:47
print "$hoge[ 1 ]" の後ろにセミコロンがない
bitcoiner2045
2018/07/09 18:52
セミコンロつけてParse error: syntax error, unexpected '"' in /Users/tanakaakio/aaa.php on line 10となりました(泣)
退会済みユーザー
2018/07/09 18:53
最新のコードとエラーを質問文に反映してください。
bitcoiner2045
2018/07/09 18:58
反映しました。
mather
2018/07/09 19:02
全角空白が混じっているようです。半角空白に置換してください。
mather
2018/07/09 19:03
ソースコードの部分をMarkdownのコードブロックで囲んでください。
m.ts10806
2018/07/10 11:53
プログラムコード(およびエラーメッセージ)は質問内容としては最も重要な部分であるため、見やすくしていただけると助かります。<code>ボタン押下→「コード」部分にコードを貼り付け→「ここに言語を入力」に対象言語名記入(エラーメッセージの場合は不要)の手順で「コードハイライト化」してください。(質問編集画面ではリアルタイムでプレビューが表示されるので見ながら調整してください)
m.ts10806
2018/07/10 11:55 編集
保存したテキストファイルを開きたいのではないのですか?なぜ保存先フォルダ名?
bitcoiner2045
2018/07/10 12:06
すいません。フォルダではなくファイルの間違いです。
m.ts10806
2018/07/10 12:34
fopen→fgetsしておきながら何にも使っていないのはなぜでしょう?
ttyp03
2018/07/10 13:22
最初に提示したコードを次々修正しないでください。初期の頃に回答した内容と齟齬が発生します。修正コードを追記する形で質問を修正してください。
bitcoiner2045
2018/07/10 13:23
わかりました。気をつけます。
m.ts10806
2018/07/10 13:58
もう1つ気をつけてください。1つの質問で全てを解決しようと思わないことです。次々と問題が起こるのは初学者では良くあることですが、1つ1つ「解決」していく必要があります。1つ解決して問題が起きたらすぐ質問 というのは良くありません。今回のように最初の回答と後の回答で見ている質問内容が違い、回答者に迷惑をかけることがあるからです。問題が起きたらまず調べてやってみて何が分からないか質問をするのがteratail利用の上での原則です。ここでコピペで動くコードをもらってそれで動いて喜んでいても何も成長はありませんよ。一度締めて、調べて出直してください。
m.ts10806
2018/07/10 13:59
私のコメントについては何かありますか? >fopen→fgetsしておきながら何にも使っていないのはなぜでしょう?
m.ts10806
2018/07/10 14:00 編集
ひとまず「取得内容を表示したい」という要件は他の皆さんの回答から私の回答までで満たせたはずです。現在起きているのは別の問題です。一度締めて調べてやってみた上で出直してください。