PHP カテゴリー記事

windows vistaでPHP開発環境の構築

2010-01-15 (金)カテゴリPHP, 制作, 興味関心タグ,

apache+php+mysql

apache2.2.14 + PHP5.3.1 + MySQL 5.1.42 でのwindows vista開発環境構築メモ。

  1. apacheをインストール
    apacheのサイトから最新版をダウンロード

  2. phpをインストール
    PHPのサイトから最新版「VC6 x86 Thread Safe」をダウンロード

  3. mysqlをインストール
    MySQLのサイトから最新版「MySQL Community Server」をダウンロード
    ※ここでessentialと付いたものは最小構成という意味です。特にフルインストールを望まなければ、essentialを選択


■ハマッた所
MySQLのmysql_connectで何故か接続エラー

Plain Text
trying to connect via tcp://localhost:3306

「localhost:3306へ接続を試しています」との事。
最初の接続を開く際には繋がるのに、mysql_connect関数で呼び出すと接続不可。

googleさんを調べていたらhostsファイルが悪さをしている事が分かりました。
IPv6での設定が127.0.0.1 localhostの後に来ていると、今回のような動作になるようです。
vistaの場合「C:\windows\system32\drivers\etc」内にhostsファイルがあるので、
エディタで管理者権限で開いて編集。
「::1 localhost」を削除もしくはコメントアウトする事で回避出来ます。

 

MySQLの再インストールの際に、アンインストールしたはずの設定が保存されている。
どうやらMySQLをコンパネから削除しても、設定データなどはそのまま残るようで
手動で削除する必要があります。

□サービスの削除
「管理ツール」→「サービス」→「MySQL」をサービス停止。
コマンドプロンプトを右クリック「管理者として実行」

Plain Text
sc delete MySQL

※MySQLはサービス名。人によってはMySQL5とかも。

□設定データ削除
コンパネからアンインストール後、
C:\Program Files\内のMySQLフォルダ削除
C:\ProgramData\内のMySQLフォルダ削除

特にProgramData内のMySQLフォルダ削除しないと、パスワードなどは残ります。

最近気になっている物まとめ

2009-09-15 (火)カテゴリHTML, PHP, 制作, 興味関心タグ

最近、今まで以上に触りたい・習得したいものが多くて目移り。
順番にやらないとしっかり覚えられない小さな脳みそなのが悲しい;

ようするに寝る間も惜しんで勉強しろと。

そんなわけで気になっているリスト

  • PHPフレームワークrhaco
    cakePHP程の大きなフレームワークじゃないのはポイント高。資料が少ないのが難点なのと内部構造の調査に時間が必要。rhaco2が出てからでも良いかも随分変わるっぽいし。
  • cakePHP1.2
    1.2って所がポイント。大御所PHPフレームワーク。良いんだけど規模感が大きい。
  • ちいたんフレームワーク
    最軽量フレームワーク構想を元に出来上がっているみたい。0開発は嫌だけどpearも嫌って人にはいいかな? 規模感はcakePHP > rhaco > ちいたん(他はryく
  • HTML5
    正直未知数。worker機能やuser databaseは将来のwebを感じる。canvasは結局Javascriptなんでしょ。と
  • iphone SDK
    再加熱。OS3以降は触ってないし、一発勝負!って感じが良い。これから企業の参入も増えそうだしね。
  • Openpear
    とりあえず登録せな!
  • 鯖構築
    数こなさないとなぁ…どうせならatom使って超省電力・意外と高性能自作鯖とか作りたい。
  • 機械作りたい!
    USBとかPCに挿して使う感じのガジェット作りたい。スイッチ構想。
  • 確定申告
    色々書籍を読み漁っている。知らないことばかりで目から鱗。
  • iphone nano
    iphoneも持ってるし。べ、別に欲しいわけじゃないんだからね!

まだまだあったけどとりあえずさっと思いついたものを並べてみた。
少しずつでも実現させるべし。

AutoPagerizeとsyntaxhighlighterプラグインをWordPressで使う

2009-07-10 (金)カテゴリJavascript, Word Press, プラグインタグ,

Autopagerとsyntax-highlighter

最近このブログの機能アップに費やす時間を増やしています。
色々と便利にしたいなとWP-AutoPagerizeプラグインを入れてみました。

これは元々FirefoxのGreaseMonkeyというアドオンの追加するユーザスクリプトで、検索結果やニュースページを見る際にページ遷移をせずにある一定のスクロールをした段階で、次のページの記事が追加されるという優れもの。

ただ、その上で問題になったのがsyntaxhighlighterプラグイン
これはソースコードを見せる際に綺麗に整形してくれるプラグインです。

何が問題かというと、次ページ記事を読み込んで表示する際にソースコードがあった場合に、syntaxhighlighterの表示処理の動作をしてくれないというものでした。
そのため両方のプラグインの調整が必要になりました。

その調整のやり方を記載しておきます。

続きを読む »

携帯とiphone対応しました

2009-07-07 (火)カテゴリWord Press, プラグイン, 制作タグ

iphoneとdocomo携帯

ブログを携帯対応してみました。
WordPressって素晴らしい!プラグインで難なく対応出来ました。
このプラグインの手軽さは他のブログシステムだと得られないなぁ…と感動。

ちなみにWPtouchKtai Styleというプラグインを入れて、オプション設定いじって完成。
一部携帯の方はヘッダ画像を出したいのでテンプレートファイルを調整していますが
作業自体は30分かかってません。

他のブログにはもう戻れない…

携帯振り分け

2009-02-13 (金)カテゴリPHP, 制作タグ

厳密に携帯の機種毎に飛ばすページを変えたい場合や、特定の機種だけを別ページにしたい場合のプログラムを書いてみた。
誰でも追加・変更しやすいよう、CSVファイルを更新すればオッケー。

クラスにまとめたので、トップページのphp等の最初にrequire_onceなどで読み込んであげれば動作します。

PHP
//CSVファイル場所を指定する場合は以下にパス記述
define(SETPATH,"");

class mobile_divergence {

var $ua;
var $url = "mobile_list.csv";

//_constract
function mobile_divergence($url=false){
	$this->ua = $_SERVER['HTTP_USER_AGENT'];
	if($url) $this->url	= $url;
	$this->loadcsv();
}
function loadcsv(){
	if($this->is_url($this->url)){
		$datas = file($this->url);
	} else {
		$datas = file_get_contents($this->url);
	}
	return $this->Jumping($datas);
}
function Jumping($d){
	for ($i=0;$i<sizeof ($d);$i++){
		$csvdatas[$i] = split(",",$d[$i]);
		if(strstr($this->ua,$csvdatas[$i][0])) header('location: '.$csvdatas[$i][1]);
	}
}
function is_url($text){
	return (!preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $text)) ? TRUE : FALSE ;
}

}
$mobileObj = new mobile_divergence(SETPATH);

file_get_contents関数部分はテストしていないので、動作しないかも…

http://~からの絶対パスで書くと、そっちが動くはずです。設定ファイルは必ず同じ箇所から判定ファイルをダウンロードする感じにも出来る。

ちなみにCSVの中身は
「ユーザーエージェント(一部)」、「移動先URL」

ユーザーエージェントは各キャリアのサイトに記載されていますので、ご確認を。

続きを読む »

popenによるメール送信とPHPセーフモード

2009-01-22 (木)カテゴリPHP, 制作タグ,

PHPのセーフモードだとpopenによるメール送信って動作しません。
動作実証済み。※正確には「safe_mode_exec_dir の中でのみ実行可能」らしい。

あとは、mb_send_mail関数使っている人は、第5引数が使えないらしいです。第4引数までは大丈夫らしい。
mail関数も同様です。

セーフモードにより制限を受けるか無効となる関数

いろいろネット中検索したけど、情報がなかった。。;
ちなみにセーフモードを調べる方法は

PHP
if(get_cfg_var("safe_mode")){
  //セーフモードのときの処理
} else {
  //セーフモードではないときの処理
}

これでオッケーです。もし他のサーバで動く関数が動かない!など問題がある場合は
セーフモードを疑ってみましょう。

はてなブログのデータを移行しました。

2008-12-27 (土)カテゴリWord Pressタグ, ,

wordpress(wp)の2.7へのバージョンアップと同時に
はてなで書いていた記事データをこちらに移行しました。
(写真データはまだはてな参照中)

なので記事数増えました~!
デザインもまだ簡易的なものなので来年早めにデザインも一新していきます。
プラグイン開発や右上の開発したプログラム公開などもデータ溜まっているので
早めに公開出来るようします!

ちなみにwordpress mu(wpmu)使っていたのですが、wpからの移行だと写真データとかも
インポート出来るのですね。。非常に優秀(当たり前)

プラグインのインストールとか楽だし。
今後のバージョンも楽しみですね

extract関数って便利。

2008-12-20 (土)カテゴリPHP, 制作タグ,

意外と使いそうで、使わない関数なんだけども
配列使う上では便利な関数。自分メモの意味も込めて。

配列に付けたキーをそのまま変数として使うことが出来ます。

PHP
$apple = "青森りんご";

$arr = array(
	"apple"	=> "りんご",
	"orange"	=> "オレンジ",
	"melon"	=> "メロン",
);
extract($arr, EXTR_PREFIX_SAME, "pre");

echo $apple.$orange.$melon.$pre_apple;

上記を実行結果は。

青森りんごオレンジメロンりんご

もしも変数が被ったら上記の場合は、「pre_」が付いて変数となります。
「EXTR_PREFIX_SAME」部分は他にも色々あります。
個人的には「EXTR_PREFIX_ALL」がおすすめ。わりかしコードの統一ルール作りやすいですしね。

以下、PHPプロ引用

EXTR_OVERWRITE
同じ名前の変数があった場合、存在する変数が上書きされます。

EXTR_SKIP
同じ名前の変数があった場合、存在する変数は上書きされません。

EXTR_PREFIX_SAME
同じ名前の変数があった場合、prefix を前につけた新しい変数となります。

EXTR_PREFIX_ALL
全ての変数の前に prefix を付けます。PHP 4.0.5 以降、接頭辞を数値とすることも可能です。

EXTR_PREFIX_INVALID
無効または数値の変数名のみに接頭辞 prefix を付ける。このフラグは、PHP 4.0.5 で追加されました。

EXTR_IF_EXISTS
カレントのシンボルテーブルに既に存在する場合にのみ上書きします。
例えば $_REQUEST 以外にあなたが定義した変数のみを展開し 有効な変数としたいような場合に有用です。このフラグは PHP 4.2.0 で追加されました。

EXTR_PREFIX_IF_EXISTS
同じ変数だが接頭辞をつけていないバージョンの変数が カレントのシンボルテーブルに存在する場合にのみ変数を生成します。このフラグは PHP 4.2.0 で追加されました。

EXTR_REFS
変数を参照として展開します。 これはインポート済みの変数が、 var_array パラメータの値に常に参照付けられることを意味します。このフラグを単独で使用するか、 あるいはextract_type と和算することにより、 他のフラグとそれを組み合わせることができます。
このフラグは PHP 4.3.0 で追加されました。

といった具合です。
関数は便利ですが、上記のような作りはforeach使えば全然出来るわけです。
そちらでも書ける事が応用効くし、重要かな。。と思います。

プログラミングPHP 第2版

プログラミングPHP 第2版

Rasmus Lerdorf Kevin Tatroe Peter MacIntyre
オライリー・ジャパン

sh512 – 暗号化とパスワード

2008-10-29 (水)カテゴリPHPタグ

パスワードなどを暗号化する場合、復号出来ないのはもちろんですが
最近まで使っていたPHPのsha1関数がどうやら今では使ってはいけないと推奨されているようです。

SHA1でハッシュ化したパスワードは危険になった
詳しくは上記参照。

調べてみたところ「sha512」なるものがあるらしいとの事で、調べてみたところPHP5.1.2以降であれば、ハッシュ拡張モジュールが標準で有効となっているようです。

PHP
$str = "abcdefghijk";
hash('sha512', $str);

結果は…

Plain Text
2798fd001ee8800e3da09ee99ae9600de2d0ccf464ab782c92fcc06ce384
7cef0743365f1d49c2c8b4426db1635433f937d508672a9d0cb673b84f36
8eca1b23

となります。今後はこっち使っていかなきゃ。
しかしセキュリティの高いことは分かるけど、復号出来ない仕組みを使うとリマインダや
他の方法でパスワードを変更可能な仕組みを作らなきゃならないのが、面倒ですな。

暗号技術入門-秘密の国のアリス
結城 浩 ソフトバンククリエイティブ
売り上げランキング: 22370

WordPress MU 入れてみました。

2008-10-28 (火)カテゴリPHP, Word Pressタグ

とりあえずWord Press MU を入れてみました。
こっちのほうがある意味MTに近い機能のようなので、あえてこちらで。

インストールはすごい簡単。
ファイル入れてから「index-install.php」にアクセスするだけ。
あとはデータベースの設定を入れてあげれば完成。

なんとお手軽。

だた気になった点として、サブドメインでのブログの構築かフォルダ以下でのブログ構築を選ぶんだけども
どっちもやりたい場合は?とか、まだまだ調べないといけないことが多いみたいですね。

本体のダウンロードは
http://mu.wordpress.org/download/

日本語化はGOOGLE codeにてダウンロード
http://code.google.com/p/wpmu-ja/

wordpressの本でいろいろ見たけど、タグ辞典的なものが良いよね。
そんなわけで以下の本お勧め。

WordPress逆引きデザイン事典[2.X対応]
高山 一登 大久保 アキラ 酒井 隆 翔泳社
売り上げランキング: 28516