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ターミナルで以下のコマンドを実行して確認。

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)

PHPApacheの開発環境導入方法についてです。

昔の記事が古くて苦労したので、新しいものを書いて置きます。

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(日本語版)のダウンロードとワークスペース立ち上げ方法
OracleRDB(リレーショナルデータベース)、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 Windowshttp://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)版」じゃないとApachePHPが起動できません。
→「msi Installer版」は余計な処理をインストール時に実行される可能性があるのでお薦めしないそう
→最新バージョンが現段階で「5.4.11」であるが、Apachephpで紐付に使うdllが新しすぎて(Apacheのバージョンは古めより)入ってないので「5.2.17」をインストールする。

ダウンロード後、zipを解凍したら
「C:\Program Files」などにフォルダを移動する。(目障りじゃなければよい。パス設定するのでフォルダの位置は今後簡単には変えられない)
配置時には、フォルダ名を「php-5.2.17-Win32-VC6-x86」から「php5」ぐらいに簡単なものにしとくべき。

その後、PHPの環境パス設定を行う。
「コンピュータ」を開いて「システムのプロパティ」
「システムの詳細設定」→タブ「詳細設定」→ボタン「環境変数
システムの環境変数にある変数「PATH」をクリックし「編集」

変数値のお尻に追加

「;C:\Program Files\php5;」

「OK」で完了しウィンドウを閉じる。


ApachePHP の紐付け -----------------------------------------------------------------------------------------------------------------

このサイトが参考になったので一応貼ります(トラブル時参照どうぞ)
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】

解凍したphpフォルダにある「php-ini-dist」を「php.ini」に名前を変える。
※バージョンによっては「php-ini-development」等がある。

その後「php.ini」をテキストエディタにて編集する。


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行目付近

;extension=php_curl.dll

を以下のようにセミコロンを消してコメントアウト解除する

extension=php_curl.dll

※これでPHPcURLが使用可能となる。ネットワークを返したHTTPリクエスト(URL操作)が可能。


3. 625行目付近

;extension=php_mbstring.dll

を以下のようにセミコロンを消してコメントアウト解除する

extension=php_mbstring.dll

※これでマルチバイトの文字列操作(正規表現,検索,置換)等ができる



4. 633行目付近

;extension=php_mysql.dll

を以下のようにセミコロンを消してコメントアウト解除する

extension=php_mysql.dll

※試してはないが、これで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

これでPHPApacheの紐付けが完了する。

Windowsの右下のアイコン、ない場合はスタートメニューから
Apache HTTP Server / Monitor Apache Servers」を探し、開く。

「Restart」ボタンによりサーバを再起動し設定を反映させる。

phpが正常に実行できるか確認する為に、

テキストエディタを開き

しょうなりphp?
phpinfo();

を書いて「phpinfo.php」で保存する。
保存場所は「Apacheフォルダ\htdocs」内。

その後、ブラウザを開きURL窓に
localhost/phpinfo.php」を入力して開く。

phpの設定結果画面が表示されればphpApacheの紐付けが完了したことになる。


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 で起動したら、
ワークスペースをどこに配置するか聞かれるので
Apachelocalhostに直結するフォルダ位置 (ex. C:\Program Files\Apache Group\Apache\htdocs) にする。

その後PHPプロジェクトを作成、PHPファイルの作成(上記のphpinfo.phpEclipse上で作ってみるとよい)をし、
実行すれば確認することができる。


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のサービスがこの方法だと立ち上がらないはずなので実行できないと…インストーラ形式の方が良い可能性


以上です。
お疲れ様でした。

tar.gz 解凍方法

「.tar.gz」は「$ tar -xzvf ファイル名」で解凍できる。

ちなみにこれはUNIXコマンドですので
WindowsであればCygwinなどで実行する必要があります。

7-Zipがインストールされてるなら
これで解凍した方が早いかも

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自体アンインストしか入れ直さなきゃかのかと思う。
(実はEclipsejdk組み込まれてるからいらないよなと思ってた)

そんで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に合わせないと起動できない
・フォルダ名とかファイル名とか今後スペースを開けないようにする