デモページ 2015-02-14 : 更新 コメントを追加して、特殊な文字を無効化しました 2013/01/07 : 更新 Chrome での表示で、\n 埋め込まれているデータを <br /> に変換して、実際に改行して見えるようにしました。 Windows Phone(C#) から使うと、エミュレータ内では取得しにくい長い文字列を LOG 等の目的で出力可能です。 1) Google Chrome から実行すると、『掲示板として動作します』 ※ F12 の開発者ツールでデバイスモードにしてから、リセットして UA に適当な文字を入力して再表示すると JSON 表示されます( iPad 等でもいいですが、それではテキスト選択ができません )
![]()
![]()
2) それ以外のブラウザからだと、表示されるのは JSON です
<?php
// **************************************
// ブラウザの判定をしています
// ( $_SERVER['HTTP_USER_AGENT'] )
// **************************************
$AGENT = "";
if ( strpos( $_SERVER['HTTP_USER_AGENT'], "Chrome") !== false ) {
$AGENT = "Chrome";
}
// **************************************
// ブラウザが Google Chrome の場合のみ
// 通常の HTML として出力します
// ※ キャラクタセットは UTF-8 です
// **************************************
if ( $AGENT == "Chrome" ) {
header( "Content-Type: text/html; Charset=utf-8" );
}
else {
header( "Content-Type: text/plain; Charset=utf-8" );
}
// **************************************
// キャッシュを無効にするヘッダです
// **************************************
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );
$log_text = @file_get_contents("./text.log");
// **************************************
// 書き込み処理です
// **************************************
if ( $_POST['send'] != "" && $_POST['text'] != "" ) {
// **************************************
// 本文中の改行コードを "\n" という
// 文字列に変換しています
// **************************************
$log_wk = str_replace("\r\n","\\n",$_POST['text']);
$log_wk = str_replace("\n","\\n", $log_wk );
$log_wk = str_replace("\r","\\n", $log_wk );
// **************************************
// 特殊な文字を無効化します
// **************************************
$log_wk = str_replace("&","&",$log_wk);
$log_wk = str_replace("<","<",$log_wk);
$log_wk = str_replace(">",">",$log_wk);
// シングルクォート
$log_wk = str_replace("'","'",$log_wk);
// ダブルクォート
$log_wk = str_replace("\"",""",$log_wk);
// **************************************
// 前回データとの境界に改行コードを
// 設定しています
// **************************************
$log_text = $log_wk . "\n" . $log_text;
file_put_contents("./text.log", $log_text );
if ( $AGENT == "Chrome" ) {
// GET メソッドで再表示します
header( "Location: {$_SERVER["PHP_SELF"]}" );
exit();
}
}
// **************************************
// 環境によって必要ありませんが、
// エラー時の設定です
// **************************************
error_reporting(E_ALL ^ E_NOTICE);
ini_set( "display_errors", "1" );
// **************************************
// Chrome 以外では JSON 文字列で返します
// ※ text.log にデータが保存されています
// **************************************
if ( $AGENT != "Chrome" ) {
?>
{
"item" : [
<?php
$json_data = @file( "./text.log" );
$cnt = count($json_data);
for( $i = 0; $i < $cnt; $i++ ) {
if ( $i != 0 ) {
print "\t\t,{ \"text\": \"" . chop($json_data[$i]) . "\" }\n";
}
else {
print "\t\t{ \"text\": \"" . chop($json_data[$i]) . "\" }\n";
}
}
?>
]
}
<?
}
else {
// **************************************
// 記事の境界を hr 要素で表現します
// **************************************
$log_text = str_replace("\n", "<hr style='color:#c0c0c0;'>\n", $log_text );
// **************************************
// 本文の改行は br 要素で表現します
// **************************************
$log_text = str_replace("\\n", "<br>\n", $log_text );
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=1280,initial-scale=1.0">
</head>
<body>
<form method="POST">
<textarea name="text" style="width:400px;height:100px;"></textarea>
<br>
<input type="submit" name="send" value="送信">
</form>
<?= $log_text ?>
</body>
</html>
<? } ?>
関連する記事 コマンドプロンプトから Windows PHP を使って POST 投稿する 関連するオンラインツール JSON チェック( JSONLint / The JSON Validator )
タグ:PHP WEBアプリケーション
|
|
【PHP + WEBアプリの最新記事】
- PHP : $.ajax でアップロード( 画像限定 ) / ファイルアップロード ver.3
- PHP : 選択した画像の表示 / ファイルアップロード ver.2
- PHP : ファイルアップロード ver.1
- 超簡易掲示板 ( JSON ) : PHP / CSS でスマホ用レスポンシブ対応
- PHP : 曲線が必要ならば ImageMagick ( 但し使えるかどうかはサーバー次第 )
- GD で画像縮小。『1) 単純縮小、2) 幅にあわす 3) 高さにあわす 4) 任意の幅と高さ』をその他の処理も含めてクラスでまとめ( class GD )
- PHP : 超簡易ログ
- PHP + MySQL + IFRAME + Bootstrap : 問い合せ WEB アプリテンプレート
- Windows で Laravel を試す際、PHP の Windows バージョンが 5.6.30 なので、Laravel 5.2 をインストールします
- Laravel を試す為に Windows に Composer をインストール
- スマホ対応、サーバインデックス表示パッケージ( jQuery + Bootstrap(css) + mmenu + PHP )
- 超簡易掲示板 : 保存タイプは CSV
- PHP : 既存 GD 関連ライブラリで、背景をグラデーション(2)
- PHP : 既存 GD 関連ライブラリで、背景をグラデーション
- PHP : 入力値のデバッグ
- PHP : ImageMagick : 背景が透過する画像を作成
- PHP雛型(2会話DB更新処理) : MySQL、XMLHttpRequest、XML、JSON、Canvas
- PHP をテストする為の初心者用フォーム



2) それ以外のブラウザからだと、表示されるのは JSON です




