カタカナ「ソ」を送ると¥がつき文字化けします・・・。 - PHPプロ!Q&A掲示板

2423

  • 0P

カタカナ「ソ」を送ると¥がつき文字化けします・・・。

質問日時 / 2009年12月26日 06:15    回答数 / 1件

Questioner:  hayato0210  このエントリーをはてなブックマークに追加 

キーワード / カタカナの文字化け   

検索してみたらPOSTされた値をmb_convert_encodingしろとあったのですが
修正できませんでした・・・。
どうすれば修正できるのでしょうか
お手数おかけいたしますがご教授頂けますと助かります。

  1. <html>
  2. <head>
  3.   <title>メモ</title>
  4.   <link rel="stylesheet" type="text/css" href="style.css" />
  5. </head>
  6. <body>
  7. <?php
  8.   /*//////////////////////////////////////////////////////////////////////
  9.   プロジェクト名:
  10.   機能:
  11.   概要:
  12.   ========================================================================
  13.   変更履歴:
  14.   日付     氏名    Ver  変更理由
  15.   2009/12/23 斉藤    0.00  初版
  16.   //////////////////////////////////////////////////////////////////////*/
  17.   
  18.   $mode = 'select';
  19.   if(isset($_GET['mode']) && $_GET['mode'] != '') $mode = $_GET['mode'];
  20.   
  21.   $file_name = '';
  22.   if(isset($_GET['file_name']) && $_GET['file_name'] != ''){
  23.     $file_name = mb_convert_encoding($_GET['file_name'],'EUC-JP','SJIS');
  24.     $file_name = mb_convert_encoding($file_name,'SJIS','EUC-JP');
  25.     $file_name = 'memo/'.$file_name;
  26.   }
  27.   //
  28.   
  29.   $dir = './memo/';
  30.  
  31.   // 既知のディレクトリをオープンし、その内容を読み込みます。
  32.   $name_array = array();
  33.   $count = 0;    //
  34.   
  35.   //  指定している階層のファイル名を全て取得
  36.   if (is_dir($dir)) {
  37.       if ($dh = opendir($dir)) {
  38.           while (($file = readdir($dh)) !== false) {
  39.               if(substr($file,0,1) != '.' && $file != basename($_SERVER['SCRIPT_NAME'])){
  40.                 $name_array[$count] = $file;    //  ファイル名の取得
  41.                 $count++;      // カウンタの+
  42.               }
  43.           }
  44.           closedir($dh);
  45.       }
  46.   }
  47.   
  48.   // ファイルから読み込み  
  49.   switch($mode){
  50.   
  51.     case 'select':
  52.  
  53.         print '<table border="1">';
  54.           print '<tr>';
  55.             print '<th>No</th>';
  56.             print '<th>ファイル名</th>';
  57.             print '<th>編集</th>';
  58.             print '<th>削除</th>';
  59.           print '</tr>';
  60.           for($i=0;$i<$count;$i++){
  61.             $num = $i+1;
  62.             print '<tr>';
  63.             print '<td>'.$num.'</td>';
  64.             print '<td><a href="memo.php?file_name='.$name_array[$i].'&mode=output">'.$name_array[$i].'</a></td>'
  65.             
  66.             print '<form method="get" action="">';  
  67.               print '<td><input type="submit" value="編集"></td>';
  68.               print '<input type="hidden" name="mode" value="edit">';
  69.               print '<input type="hidden" name="file_name" value="'.$name_array[$i].'">';
  70.             print '</form>';
  71.             
  72.             print '<form method="get" action="">';
  73.               print '<td><input type="submit" value="削除"></td>';
  74.               print '<input type="hidden" name="mode" value="delete">';
  75.               print '<input type="hidden" name="file_name" value="'.$name_array[$i].'">';
  76.             print '</form>';
  77.             
  78.             print '</tr>';
  79.           }
  80.         print '</table>';
  81.       
  82.       break;
  83.     
  84.     case "output":
  85.       $memo_array = @file($file_name) or die("ファイルが開けません");
  86.  
  87.       foreach ($memo_array as $key=>$value){
  88.         $memo_array[$key] = trim($value);
  89.         print htmlspecialchars($memo_array[$key]).'<br>';
  90.       }
  91.       break;
  92.     case "edit":
  93.       $memo_array = @file($file_name) or die("ファイルが開けません");
  94.       $memo = "";
  95.  
  96.       foreach ($memo_array as $key=>$value){
  97.         $memo_array[$key] = trim($value);
  98.         $memo .= htmlspecialchars($memo_array[$key])."\r\n";
  99.       }
  100.       print '<strong>ファイル名</strong><br>'.$file_name.'<br><br>';
  101.       print '<strong>本文</strong><br><textarea name="edit_memo" cols="100" rows="30">'.$memo.'</textarea>';
  102.       
  103.       break;
  104.     case "edit_preview":
  105.       print '<font color="#ff0000">'.$file_name.'を編集しました。<br></font>';
  106.       print '<a href="memo.php">メモ一覧へ</a>';
  107.       break;
  108.     case "delete":
  109.       print '<form method="get" action="">';
  110.         print '<font color="#ff0000">'.$file_name.'を削除しますか。</font>';
  111.         print '<input type="submit" value="削除">';
  112.         print '<input type="hidden" name="mode" value="delete_preview">';
  113.         print '<input type="hidden" name="file_name" value="'.$file_name.'">';
  114.       print '</form><br>';
  115.       print '<a href="memo.php">メモ一覧へ</a>';
  116.       break;
  117.     case "delete_preview":
  118.       unlink($file_name);
  119.       print '<font color="#ff0000">'.$file_name.'を削除しました。<br></font>';
  120.       print '<a href="memo.php">メモ一覧へ</a>';
  121.       break;
  122.     /*
  123.     $fp = @fopen($path,"a+") or die("登録できませんでした。");//読み書きモードでオープン
  124.  
  125.     rewind($fp);      //ポインタを先頭に、ロックして書き込み
  126.     fputs($fp, $text);
  127.     fclose($fp);      //ファイルを閉じる
  128.     */
  129.       
  130.       
  131.   }
  132.   
  133. ?>
  134. </body>
  135. </html>

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01shimixmagic_quotes_gpcがONだと思います。stripslashesを通

回答一覧

並び替え:

A01
answerershimix [12月26日 09:56]

magic_quotes_gpcがONだと思います。stripslashesを通してください。

  http://www.php.net/manual/ja/info.configuration.php#ini.magic-quotes-gpc
  http://www.php.net/manual/ja/function.stripslashes.php

  http://www.shtml.jp/mojibake/sjis_cgi.html#php

  

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)