質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

1回答

170閲覧

文字化け発生時にPHPが即終了してしまう

nnggyy

総合スコア8

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2019/03/25 09:59

いつからかPHPで書いたプログラムをコマンドプロンプトで実行すると文字化け発生時に即終了するようになってしまいました。

OS:Windows10 1809
PHP:xamppの物をつかっています。PHP 5.6.24 (cli)

C:/xampp/php/php.exe C:/test/test.php

test.php の中身

<?php echo "a\n"; echo "あ\n"; echo "c\n"; ?>

実行結果
C:/xampp/php/php.exe C:/test/test.php
a

なお、コマンドプロンプトの文字コードをUTF-8に変えると最後までプログラムは実行されます。
今回は事情があり、文字化けを防ぎたいのではなく、文字化けしてもプログラムを完走させる方法を探しています。

何か方法はございますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/03/25 10:02

エラーログの設定してみて、何か出力されてたりしないですか?
kasa0

2019/03/25 10:06

C:/xampp/php/php.exe C:/test/test.php > C:/test/test.txt でも出力が途中で止まっていますか?
nnggyy

2019/03/25 10:55

php.iniに下記のような設定(error_log はパスの書き方が間違っているのではないかと思い4通り試しました)が何も出ませんでした。 display_errors on log_errors = On error_log = "C:\xampp\php\mylog\error.log" error_log = C:\xampp\php\mylog\error.log error_log = "C:/xampp/php/mylog/error.log" error_log = C:/xampp/php/mylog/error.log
nnggyy

2019/03/25 10:58

C:/xampp/php/php.exe C:/test/test.php > C:/test/test.txt こちらを試したところ、 a あ c と書かれたUTF8のファイルが出来上がりました。入力されました。 実行したときのコマンドプロンプトの文字コードは  chcp  現在のコード ページ: 932 S-JISでした。
退会済みユーザー

退会済みユーザー

2019/03/25 11:06

phpは実は強制終了なんてしていなくて、コマンド・プロンプトがUTF-8耐性がなくて落ちたんですよ。
guest

回答1

0

ベストアンサー

投稿2019/03/25 10:44

編集2019/03/25 10:50
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nnggyy

2019/03/25 11:15

回答ありがとうございました。 開発時にデバッグ用で入力していた echo や print_r が悪さをしているようでした。 運用時に表示する必要はない項目なので片っ端からコメントアウトしました。 Windows10のバージョン1709 のPCがあったのでそちらで動作検証を行ったところ、 文字化けしてもプログラムは完走しました。 もしかしたらUTF-8モードが実装されたあたりから挙動が変わったのかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問