新しくブログを開設しました。

Webエンジニアがデザイナーになってみる。


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

新しくブログを開設しました。

Webエンジニアがデザイナーになってみる。



WEBAPI使って何かツールを作ろうかなといじってみました。

今日の題目は
「phpでjsonをやりとりする」

そもそもjsonってjavascriptでデータを扱うための形式なのでphpで扱うものじゃないんですよね。
でもxmlよりjsonのが主流になりつつある?(若干疑問)らしく、APIから返される形式にjsonが最近増えてきました。

javascriptからなら直接jsonを扱えますが、phpからは特殊なライブラリを使って変換しなければいけません。
今回、開発していたサーバにはjsonの関数が入っていませんでしたので、jsonのライブラリをダウンロードして使わせていただきました。

で、まずひとつめ
「配列データをjson形式に変換する」




Services_JSONのインスタンスを生成し、そいつのオブジェクトを使ってencodeメソッドで変換します。
これにより、通常の配列データがjson形式に変換され、javascriot上でサクサク動かすことができるようになります。






php上でこのjsonデータを扱いたい場合、APIから返却されるjsonを解析して処理を行いたい場合
decodeメソッドを使って、配列に変換し、処理できる型にします。
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

新しくブログを開設しました。

Webエンジニアがデザイナーになってみる。


try/catch構文を用いて注意や警告を扱う方法


PHPでerror、notice、warningを処理するのは難しいかもしれませんが
PHP5では、例外に基づいたエラーハンドリングがPHPコアに実装されており
それを使ってコード内の例外を処理することができます。


利用したいときは参考に、

テーマ:プログラミング - ジャンル:コンピュータ

新しくブログを開設しました。

Webエンジニアがデザイナーになってみる。



とあるディレクトリの配下にあるファイル一覧を再帰的に表示する方法。

調べてみましたが、ほとんどがあるディレクトリのファイル一覧を表示するだけで

配下まで再帰的に探してくれるものが見つからなかったので作ってみました。

(たぶんどっかにあるんでしょうが、わかりづらかったので…)

綺麗なコードでなくて申し訳ありません。

とりあえずfileListクラスで作成してみました。

PHP5からはscandir関数を使うことであるディレクトリのファイル一覧を取得することができます。

PHP4ではopendirでファイルハンドルを生成して作成してください。

しかし、それだけでは再帰的にディレクトリ階層を調べるがでいないため、自メソッドを呼び出して再帰的に調べます。



これで、配列にファイルパスの一覧を格納できます。

あとはforeachで配列の中身を取り出すだけ

ここで、注意するところは配列の中に配列が入っている可能性があるため

ここも再帰的に呼び出す必要があるということです。



これによってファイルパス一覧を取得できます。

下記が上記を結合したもの

続きを読む

テーマ:PHP - ジャンル:コンピュータ

新しくブログを開設しました。

Webエンジニアがデザイナーになってみる。




先日作ったヤフオクAPIのサンプルをサーバにアップロードしたいんだけど

自分の使ってるサーバはレンタルサーバのためphp.iniが編集できないんです。。

調べてみたところ、php.iniが編集できない場合は.htaccessファイルを配置することで代用することができるらしい。

PHPの設定ファイルはphp.iniで設定しますが、このファイルはApacheを再起動しないと反映されません。

レンタルサーバだったりするとそんなことできませんよね。

そこでこのサーバの設定を自由にいじることができるのが

.htaccessファイル

制限はあるようですがサーバの設定を書き換えることができるようです。

ちなみにwindowsではどっとから始まるファイルは作成できないので

アップロードした後にサーバ上で変更しましょう。

.htaccessファイルの特徴ですが、このファイルはドキュメントルート以下に配置し、配置したディレクトリは以下の全てのディレクトリに対し、設定が有効になります。


■設定方法



設定を行うには
「php_value」
「php_flag」
を使用します。

「php_flag」はOnやOffなどの論理値に
「php_value」は文字列に使用されます。

またphp.iniではイコールで設定していましたが、上記のとおりイコールは使用しません。


まあそんなところで、

実際.htaccessファイルを作成して確認してみましたが

phpinfo()でみても全く反映されていませんでした。。。

「.htaccess」ファイルはサーバ管理している人が使用許可をしていないとしようするこっとができないようです。。。

もうちょっと調べてみます。

ヤフオクAPIを公開する日はまだ遠いなー。


テーマ:API - ジャンル:コンピュータ

新しくブログを開設しました。

Webエンジニアがデザイナーになってみる。


Apacheの設定はこちらから
http://kanamehackday.blog17.fc2.com/blog-entry-235.html


今回はPHPの設定です。

バージョンはPHP5.2を使用しています。


PHPの設定


1.PHP5のダウンロード
http://www.php.net/downloads.php

Windows Binariesの「PHP 5.3.0 zip package 」

5.3.0は日地用ファイルが存在しないため、バージョンを「PHP 5.2.11 zip package」に変更

・jp.php.netのリンクからダウンロード


2.php-5.2.11-Win32.zipの解凍
解凍後にフォルダ名を
php-5.2.11-Win32

php
に変更しておきましょう。


3. iniファイルの書き換え
C:\phpにある「php.ini-dist」ファイルを
C:\WINDOWS
にコピーします。

コピー後にファイル名を「php.ini」に変更します。


4.dllファイルのコピー
【php5の場合】
C:\WINDOWS\system32に以下ファイルをコピーします
・php5ts.dll
・libmysql.dll

【php4の場合】
C:\WINDOWS\system32に以下ファイルをコピーします
・php4ts.dll
・dlls\libmysql.dll



5.php.iniファイルの編集
■115行目:出力変換を有効に
;output_handler =

output_handler =mb_output_handler


■447行目:HTTPヘッダcharsetを設定
;default_charset = "iso-8859-1"

default_charset = "EUC-JP"


■475行目:拡張モジュールパス
extension_dir = "./"

extension_dir = "C:\php\ext"


■599行目~:dllのコメントアウト解除
extension=php_mbstring.dll
extension=php_mysql.dll


■1165行目:デフォルト言語を日本語へ
;mbstring.language = Japanese

mbstring.language = Japanese


■1170行目:内部エンコーディングの設定
;mbstring.internal_encoding = EUC-JP

mbstring.internal_encoding = EUC-JP


■1173行目:HTTP入力をauto
;mbstring.http_input = auto

mbstring.http_input = auto


■1177行目:HTTP出力をEUC-JP
;mbstring.http_output = SJIS

mbstring.http_output = EUC-JP


■1184行目:HTTP入力の変換を有効に
;mbstring.encoding_translation = Off

;mbstring.encoding_translation = On


■1188行目:デフォルトの文字エンコーディング検出の順序をautoに設定
;mbstring.detect_order = auto

mbstring.detect_order = auto


■1192行目:無効な文字の代替文字を検出しない
;mbstring.substitute_character = none;

mbstring.substitute_character = none;



以上でPHPの設定は完了です。

ちゃんと反映されているか確認をするために、phpinfo.phpを作成します


<?php
   phpinfo();
?>


C:\Apache\htdocs
に配置します。


Apacheを再起動させて

http://localhost/phpinfo.php

以下機能が表示されていることを確認してください
・mbstring
・MySQL

表示されていれば、完了です。

おつかれさまでした。

テーマ:PHP - ジャンル:コンピュータ

次のページ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。