PHP(mySQL,HTML) 日本語文字
日本語文字を扱う方法です。
デフォルト設定で文字化けしてしまう場合は、
設定が必要となります。
基本UTF-8にしとけば問題ないべ?って考えてる
僕なのでUTF-8の設定を書いて置きます。
ちなみに状況としては、
・Apache2.0インストール済
・PHP5.2インストール済
・mySQL5.2インストール済
★ブラウザの表示文字コード
Internet Explorer , Google Chrome の表示文字コード
がUTF-8になっているか確認します。
Eclipseの内部ウェブブラウザでも同様です。
(右クリックエンコードより)
選択しても切り替わらない場合は表示が問題ではない
★mySQLに作成したデータベーステーブルの構造
データベースのテーブルには、文字コードを持つそう。
「Collation:utf8」のようになってるか
確認する必要性があります。
mysqlターミナルで以下のコマンドを実行して確認。
mysql> show variables like 'character_set%';
これによりValuesが「utf8」になっているか確認。
「latin1」とかデフォルトでなる場合あるらしい、それはまずい。
設定は「my.cnf」でやるそう(自分はやらなかったので記載しません)
★データベースのタプル
データベースに登録されたタプルが
元々、文字化けたものが入ってるか確認する必要がある。
MySQL Command Line Client はオプションを見る通り、
MS932が設定されていて変更できないので、
コンソール上では、日本語が文字化けして表示される
(UTF-8かテストしたい場合ではあるが)
GUIツール上でSQLを実行し、
タプルを取り出して確認することがよい。
PHP等の設定の前にmySQLデータベースのタプルで
ミスってる場合があるよう
★php.iniにおいて、特にmbstringの設定
PHPがデフォルトでUTF8を使ってるか確認する。
phpinfo();のプログラムを書いて
実行し設定情報を確認するとよい。
ちなみに以下の設定がUTF-8だと好ましいようなので
示しておく。
[php.iniのmbstringなど]
参考:
http://wiki.ohgaki.net/index.php?PHP%2Ftips%2F%E6%8E%A8%E5%A5%A8php.ini%E8%A8%AD%E5%AE%9A
http://www.phpbook.jp/install/phpini/index5.html
以下全部コメントアウトし忘れチェックもすること
1. defalut_charset="UTF-8";
2. extension=php_mbstring.dll
3. mbstring.languages = Japanese
4. mbstring.internal_encoding = UTF-8
5. mbstring.http_input = pass
6. mbstring.http_output = pass
7. mbstring.encoding_translation = Off
8. mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
9. mbstring.substitute_character = none;
★PHPプログラムコード
PHPプログラム上で mysql_query(); を呼び出すときの
文字コードを指定しておくことが大事らしい。
データベーススキーマをしてから (cf. mysql_select_db)
mysql_query("SET NAMES UTF8");
をすることでmysql_queryがUTF8で実行されるよう。
PHPプログラム上で以下のようなメソッドが
文字コード操作上で使ったりするらしいので、
見ておくとよいかも。
mb_check_encoding();
mb_convert_encoding();
何か設定を変更したら保存。
サーバーに影響する変更であれば、Apacheの再起動が必要です!
PHP (Apache) 開発環境導入方法2 (+Eclipse,+mySQL)
昔の記事が古くて苦労したので、新しいものを書いて置きます。
XAMPP http://www.apachefriends.org/jp/xampp.html で一括インストール
を試したのですがApacheの起動でどうしても処理落ちするので、一つずつインストールしました。
紹介する内容は以下の通りです。
・WebサーバApache(2.0)のダウンロードとインストール
・動的Webページ生成のスクリプト言語PHP(5.2)のダウンロードと環境パス設定
・PHPプログラムがApacheサーバで実行できるように紐付けの設定方法 (httpd.conf,php.ini)
・PHP開発で使用する統合開発環境Eclipse(日本語版)のダウンロードとワークスペース立ち上げ方法
・OracleのRDB(リレーショナルデータベース)、mySQL(5.2)のダウンロードと日本語化
対象となるPCは「Windows 7 32bit」です。
★ Apache ----------------------------------------------------------------------------------------------------------------------------
Apacheのサイト http://httpd.apache.org/ からダウンロードする。
Versionは「2.0.64」にすること。
現段階で最新バージョンは「2.4.3」であるが、
Windows版OpenSSLは「2.0.64」が最新なのでコレを使う。
→「OpenSSL」は「PHP cURL(後程説明)」を使う為に必要らしい。
ちなみに以下が直ダウンロードリンク。
Win32 Binary including OpenSSL 0.9.8o (MSI Installer)
http://ftp.tsukuba.wide.ad.jp/software/apache//httpd/binaries/win32/httpd-2.0.64-win32-x86-openssl-0.9.8o.msi
インストール時は
「ネットワークドメイン」と「サーバードメイン」
を聞いてくるから、
「localhost」を入力する。
インストールが完了したら、
ブラウザを開いてURL欄に「localhost」と入力し、
ページが開くか確認してみる。
→ApacheのサーバOKみたいな案内が出るはず
→状況によっては「localhost:80」または「localhost:8080」と入力しないといけない場合もあるとのこと
※Skypeは標準で80番ポートを使用しているらしいので、
ポートを変更しておくのが安全。
Skypeの「ツール」「設定」で「詳細」「接続」のところにチェックボックスがあるはず。
★ PHP ----------------------------------------------------------------------------------------------------------------------------
PHPのサイト http://php.net/
PHP Windows用 http://windows.php.net/download/ からダウンロードする。
Versionは「5.2.17」にすること。
ちなみに以下が直ダウンロードリンク。
VC6 x86 Thread Safe Zip
http://windows.php.net/downloads/releases/php-5.2.17-Win32-VC6-x86.zip
→「スレッドセーフ(Thread Safe)版」じゃないとApacheでPHPが起動できません。
→「msi Installer版」は余計な処理をインストール時に実行される可能性があるのでお薦めしないそう
→最新バージョンが現段階で「5.4.11」であるが、Apacheとphpで紐付に使うdllが新しすぎて(Apacheのバージョンは古めより)入ってないので「5.2.17」をインストールする。
ダウンロード後、zipを解凍したら
「C:\Program Files」などにフォルダを移動する。(目障りじゃなければよい。パス設定するのでフォルダの位置は今後簡単には変えられない)
配置時には、フォルダ名を「php-5.2.17-Win32-VC6-x86」から「php5」ぐらいに簡単なものにしとくべき。
その後、PHPの環境パス設定を行う。
「コンピュータ」を開いて「システムのプロパティ」
「システムの詳細設定」→タブ「詳細設定」→ボタン「環境変数」
システムの環境変数にある変数「PATH」をクリックし「編集」
変数値のお尻に追加
「;C:\Program Files\php5;」
「OK」で完了しウィンドウを閉じる。
★ Apache と PHP の紐付け -----------------------------------------------------------------------------------------------------------------
このサイトが参考になったので一応貼ります(トラブル時参照どうぞ)
http://www.wakhok.ac.jp/~saga/text/2006/webprog/install.html
【Apache:httpd.conf】
apacheのイントールフォルダ(デフォルトではC:\Program Files\Apache Group\)の「Apache2\conf\httpd.conf」のファイルを編集します。
1. 173行目付近
#LoadModule ssl_module module/mod_ssl.so
の下に追記
LoadModule php5_module "C:/Program Files/php5/php5apache2.dll"
PHPIniDir "C:/Program Files/php5
※行番号がわからなかったらテストエディタの検索機能を使う。(便利なTerapadをインストールしておくこともお薦め)
※パスは自分のフォルダ階層に合わせて設定すること
※Terapadだと、エディタモードの文字コードは「SJIS」で展開されるはず。
※フォルダ階層のパス明記は「/」スラッシュを使えばよい。フォルダがパスの末になる場合はスラッシュは不要。
→これによりPHPモジュールの読込が完了
2. 800行目付近
#AddOutputFilter INCLUDES .shtml
の下に追記
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
→これによりphp拡張子の対応が完了
解凍したphpフォルダにある「php-ini-dist」を「php.ini」に名前を変える。
※バージョンによっては「php-ini-development」等がある。
1. 491行目付近
;Directory in which the loadable extensions (modules) reside.
extension_dir = "./"
を次に書き換える
;Directory in which the loadable extensions (modules) reside.
extension_dir = "C:/Program Files/php5/ext"
※httpd.confと記述方法は同様、パスには適切なものを書く。
2. 614行目付近
※これでPHPのcURLが使用可能となる。ネットワークを返したHTTPリクエスト(URL操作)が可能。
3. 625行目付近
;extension=php_mbstring.dll
extension=php_mbstring.dll
※これでマルチバイトの文字列操作(正規表現,検索,置換)等ができる
4. 633行目付近
※試してはないが、これでmySQLが使えるはず
5. 1198行目付近
; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
;mbstring.internal_encoding = EUC-JP
を以下のようにセミコロンを消してコメントアウトを解除し、
文字コードをSJISに切り替える。
; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
mbstring.internal_encoding = SJIS
追記: 日本語を操作するにはphp.ini mbstring あたりを細かく設定する必要がある
→http://d.hatena.ne.jp/lanevok/20130127/1359264634
Windowsの右下のアイコン、ない場合はスタートメニューから
「Apache HTTP Server / Monitor Apache Servers」を探し、開く。
「Restart」ボタンによりサーバを再起動し設定を反映させる。
phpが正常に実行できるか確認する為に、
テキストエディタを開き
しょうなりphp?
phpinfo();
を書いて「phpinfo.php」で保存する。
保存場所は「Apacheフォルダ\htdocs」内。
その後、ブラウザを開きURL窓に
「localhost/phpinfo.php」を入力して開く。
phpの設定結果画面が表示されればphpとApacheの紐付けが完了したことになる。
★ PHP Eclipse (PDT) ----------------------------------------------------------------------------------------------------------------------------
Eclipseの日本語化プラグインを置いてあるサイトはこちら
http://mergedoc.sourceforge.jp/
「4.2 Juno」でよいかと。
PHP 32bit Full Edition のDownloadをクリックする。
直ダウンロードリンクはこちら
http://mergedoc.sourceforge.jp/pleiades-redirect/4.2/pleiades_php-32bit_jre.zip.html?20121123
eclipse.exe で起動したら、
ワークスペースをどこに配置するか聞かれるので
Apacheのlocalhostに直結するフォルダ位置 (ex. C:\Program Files\Apache Group\Apache\htdocs) にする。
その後PHPプロジェクトを作成、PHPファイルの作成(上記のphpinfo.phpをEclipse上で作ってみるとよい)をし、
実行すれば確認することができる。
★ mySQL (Workbench) --------------------------------------------------------------------------------------------------------------------------
mySQLのサイトはこちら
http://www-jp.mysql.com/products/workbench/
日本語化できます。以下のサイトが参考になりました。
http://d.hatena.ne.jp/koiwaiyuji/20120206/1328543498
こちら http://www-jp.mysql.com/downloads/workbench/ より
mySQL 5.2.45(現在は) Windows x86 32bit ZIP Archive をダウンロード
※MSI Installer は余計な処理をインストール時に実行される可能性があるのでお薦めしないそう
※ダウンロード時にログインしろとか言われます。ID取得しないとダウンロードさせてくれないのでしょうがないなぁーって感じで
登録してダウンロードしてください。
次に日本語化についてですが、
以下のサイトに日本語化パッチがあるのでダウンロード。
http://sourceforge.jp/projects/oss-ja-jpn/releases/?package_id=10742
「5.2.34_ja6.tar.gz」でok。というのは、バージョンが違う場合でもうまくいったりします。
直ダウンロードリンクはこちら
http://sourceforge.jp/projects/oss-ja-jpn/downloads/53180/mysql-workbench-gpl_5.2.34_ja6.tar.gz/
tar.gzはLhaplusあたりの解凍ソフトであれば、解凍することが可能です。
ただ、解凍はこれだけでは足りなくて、解凍されたファイルに
「mysql-workbench-gpl_5.2.34-6_i386.deb」があるはず。
これも解凍する必要がある。7-Zipでなら解凍可能。
(7-zip サイト http://sevenzip.sourceforge.jp/ ※これはmsiインストーラで問題ない)
これを解凍した後、
「usr\local\share\mysql-workbench\data」内にある
約20個のファイルを
始めにダウンロードした本来のmySQL Workbenchの「data」フォルダに全部上書きさせる。
起動して日本語化されているか確かめる。
※mysqlのサービスがこの方法だと立ち上がらないはずなので実行できないと…インストーラ形式の方が良い可能性
以上です。
お疲れ様でした。
VMのMacキーボードについて
キーボードの入力をしても思った字が出ない問題について。
具体的に、「2ふ"」のキーで「@」が出る また キーボードの右側での「@」入力ができない場合
これはキー配列が「JIS」か「ANSI」かの違いで起こる。
http://www.geocities.jp/mac_scripter/
このページで ANSI->JIS に切り替える。
Command+space が反応しないということで、
「システム環境設定」「キーボード」「キーボードと文字入力」の
「前の入力ソースを選択」でショートカットキーを適当に「F8」とか割り当てる
と簡易切り替えも設定できる。
Eclipseにヒープメモリを多量に積む方法
Eclipseにヒープメモリを多量に積む方法です。
ヒープメモリが多量に必要となる場合というのは、
「HashMapにaddしまくる」とかです。
ちなみにある程度のヒープを確保しておくと
Eclipse自体の起動が速くなります。
さっそく。
…
約1ヶ月半前に書いていたので
こちらを参考に
-Xms512 と -Xmx1024 は普通に使ってる人でも設定しておくといいですね。
んで、-Xmx6144 とかに設定すれば6GB積めるよな?って甘い考えをしていたのは僕。
書いたら起動できない。
エラー内容↓
「Java Virtual Machine Launcher」
「Could not create the Java virtual machine.」
バーチャルマシンが立てられないだと…。
そんでググると
-vm
c:\...\Java\jdk...\bin\javaw.exe
みたいな2行書いてパス指定しろとのこと 参考
パス設定してもできない。
意味がわからない。
Desktopに java\7\とかやっていたのがいけないのか?という疑問に
とりあえず、java6とjava7が衝突してるとやだなーってアンインストール
ただ、完全にできてないらしく新しくjava7がインストできない。
そもそもjava7とかどこにあんのよって探す。
C:\Users\username\AppData\LocalLow\Sun\Java\jre1.7.0_09
こんなところにあった。
てか未だにAppDataフォルダの存在意味がわからない。
とりあえず、それでeclipse.iniに書こと思ったが、そもそもbinファイルはここにはない(エッ)
元に戻りDesktopにあるeclipseのパスでeclipse.ini構成ファイルに書くのだけど
できないのでとりあえずjavaが動いてるからコマンドプロンプト叩く。
C:\java -version
java version "1.6 ..
...
ってなってた。
とりあえず反応してるが1.7ではないと…。
Desktopのeclipseのjava7に環境設定のパス通して
java -version で1.7が出るようになる。
にしてもeclipse.iniで設定した内容で動かない。
ちなみに6GBで出来ないのなら、2GBはどうだ?とか試したけど
そもそも1GBしか反応してくれない。
1GBならeclipseは正常に動作する。
次にDesktopのパスが悪いのかと疑う
コマンドラインで入力受け取るから
c:\....\Eclipse (new)\... とかスペース空いていると
場所認識しないのかな?と
c:\....\"Eclipse (new)"\... みたいなことパス設定でやってみるが無意味。
しょうがなくフォルダ名(あまりいじりたくなかったパス設定さらに崩れるとやだし)
いじる
c:\....\Eclipse\.... にしてもダメだった。
なぜ多量に積めないか考えてみるに、わからない
・javaは入ってる
・javaのパスは通ってる
・eclipse.iniも適切に書いたはず
ググるうちに
Windows 32bitは1GBちょいしか積めないとの書込みみる。
ただ自分は64bitなので絶対積めると思い込む。←正しいんだけど
その後
コマンドラインにjava -versionと叩いたときに
「Java HotSpot(TM) 64-Bit Server VM ...」って出てる記事見かける。
これ自分もでないと64bitで認識してないんじゃないかと思う。
てかjavaの1.7 Java7ってやつ入れたけど、
jdk自体アンインストしか入れ直さなきゃかのかと思う。
(実はEclipseにjdk組み込まれてるからいらないよなと思ってた)
そんでjdk-64bitインストする。
それでも実行できない…。
Eclipseそもそも32bit対応とか書いてある記事見つける。
あ、今日Eclipseの新しくダウンロードしたのjava7から
日本語パッケージ化されてたやつDLしたから32bitだったけど…
あれって本家じゃないのかと気付く。
本家から英語でもいいからEclipse 64bitダウンロードする。
eclipse.ini設定し うまくいったたぁぁぁぁあああああああ!!!!
【結論】-----------------------------------------------------------
・ヒープメモリを増やすにはとりあえず-Xms512 と -Xmx1024の部分の数字を変える
・javaw.exeのパスでバーチャルマシンを起動しないといけないので、-vm でパス設定する。
・コマンドプロンプトで java -version とやるとjavaのversion ならびにvmのbitが見れる。
・32bitPCは1GBちょい程度しか積めない。
・64bit jdkと64bit Eclipseに合わせないと起動できない
・フォルダ名とかファイル名とか今後スペースを開けないようにする