45474


  * wordで`1行目,2行目,3行目, ...`と文字を入力してテキストファイル(`phptanaka.txt`)を作成
  * viエディタで下記コードを入力してphpファイル(`aaa.php`)を作成

ターミナルで`php aaa.php`と実行するとエラーは出ませんが`?P?s??`と文字化けして表示されてしまいます。  
あともう少しのところまで来ているような気がするのですが、時間だけが経過してしまいます。  
どなたかご助言下れば幸いです。宜しくお願いします。

[code]

    <?php
    
    $fp= fopen("/Users/tanakaakio/Desktop/phptanaka.txt","r");
    
    $line = fgets($fp);
    
    fclose($fp);
    
    $hoge = file("/Users/tanakaakio/Desktop/phptanaka.txt");
    
    print $hoge[0];
    
    ?>
    
[/code]


CC BY-SA 4.0
2018-07-10T06:42:27.213
45471
2018-07-11T01:57:54.907
2018-07-11T01:57:54.907
3060
29244
question
php
テキストファイルの中に記述されている１行目を取得し、画面に表示したい


文字に？が出ているということは、UTF8の文字をShift-Jisで表現しようとして文字化けしたのかと思います。  
コンソールの文字コードを確認してみて、Shit-Jisになっていれば、UTF8にしてみてはどうでしょうか？

<http://okguide.okwave.jp/guides/590>

以下参考URLからの引用です(半角の#をつけるとBoldになるので、全角にしています)

>   * 現在の文字コード確認  
>  ＃ echo $LANG
>
>   * 文字コード変更  
>  ＃ LANG=ja_JP.UTF-8
>
>


CC BY-SA 4.0
2018-07-10T07:10:46.760
45474
2018-07-10T07:17:09.693
2018-07-10T07:17:09.693
17014
17014
45471
answer


テキストデータを作成する際は文字コードを気にした方がいいかと思います。  
対処方法としては、  
１．Webサーバ内で作成する(vimなど)  
Webサーバに設定していなければ普通サーバのデフォルト文字コードが使われるので、  
同一サーバ内で作成したテキストファイルは同じ文字コードで表示されるはずです。  
２．作成した環境の文字コードからWebサーバ環境の文字コードに変換する。  
Windowsでテキストデータを作成した場合、大抵ShiftJISです。

[code]

    <?php
    $path="/Users/tanakaakio/Desktop/phptanaka.txt";
    $fp= fopen($path,"r");
    $line = fgets($fp);
    fclose($fp);
    //文字コードを変換して表示
    print mb_convert_encoding($line, 'UTF-8', 'sjis-win');
    
[/code]


CC BY-SA 4.0
2018-07-10T08:03:21.277
45477
2018-07-10T08:03:21.277
45471
answer


プログラム(ソースコード)やプログラムで扱うテキストデータの作成にWordの使用はおすすめしません。  
viエディタが使用できるなら、対象のテキストファイルもviで作成する方が余計なトラブルを避けられます。


CC BY-SA 4.0
2018-07-10T16:19:54.387
45488
2018-07-10T16:19:54.387
3060
45471
answer