タグのついた記事 php

phpのループ構造の中で変数を使う際、当然だがループを経ても変数は継承されるので、一度リセットしたい場合はunset()を使う

はい

コメントを書く

phpでfilesize()でファイルサイズが取得出来ない特定の拡張子のファイルがあって、何が原因だろうと思ってたらgzipだった

apacheのmod_deflateでgzipで配信されてる状態のファイルはfilesize()してもファイルサイズが取得出来ないっぽい。

若干はまった。

コメントを書く

phpのreadfile()でURLが読み込めなくて、php.iniの設定かなんかがおかしいのかなーと思ってたら、ルーターのせいだった

ルーターで自分のグローバルIPを叩くと拒絶するようになってたせいで届いてなかった。
解決するには、hostsにアクセスしたいドメイン>127.0.0.1といったように設定する。

ヘアピンNATという機能があるルーターでは普通に直接アクセス出来るみたいだけど、通常はセキュリティ的な問題で拒絶するようになっているらしい。ちなみにNECのWR8500N。

コメントを書く

Apacheでphp.txtやcgi.txtとしているにも関わらず普通に実行出来てしまう場合

AddHandler default-handler .txt

を追加する。

コメントを書く

phpで2重に関数を呼び出さないようにするには

時々、2重に関数を呼び出したくはないのだけれど既に読み込んだ関数が記述されたファイルを再読み込みしなければならず、エラーを吐くことになることがある。

これを回避するには少々強引だがfunction_exists()関数を使う。
これを使えば関数がすでに定義されているのかどうかを判断できるようになるため、

if(!function_exists(“関数名”){
ここに関数
}

とすることで2回目以降は呼び出されないようにすることが出来る。

コメントを書く

phpでsort()関数を使うとき、数字ベースでソートしたい場合は

sort()関数/PHP関数リファレンス

sort($配列,SORT_NUMERIC)
とする。こうしないと例えば100.jpgと1.jpgが配列の中にあった場合、一番先頭に来るのは1.jpgではなく100.jpgのほうになってしまうようだ。

コメントを書く

mysqlのDATATIME型にPHPから日時を流し込むためには

mysqlで日付と時間を記録したく、かつDBを直接人間が見てもわかりやすい形式となるとDATATIME型ということになる。
参考 http://q.hatena.ne.jp/1143719566
mysql.com DATATIME,DATE,TIMESTAMP 型 http://dev.mysql.com/doc/refman/4.1/ja/datetime.html

この形式の名前をISO8601という。

PHPで書き出すためには、PHP5以上ならばdate(c)を使えばいい・・・はずだったのだがどうやらISO8601は多様な書き方を許していてこれはDATATIME型とは違う書式だったので、自分で作った。

date(‘Y-m-d H:i:s’)

これでDATATIME型に放り込める。

コメントを書く

Aptana Studioとxml宣言

Aptana Studioでは例えそれが本来validであったとしても、php文の中にxml宣言の?>が含まれているとそれ以下は色分けが行われなくなる。

解消法は見つからなかった。とりあえず編集してるうちは?>の?を消して、本番時にまた載せる。

コメントを書く

phpのgetenv(”REMOTE_HOST”)で値が取得出来ない場合は

Apacheのhttpd.confでHostNameLookupsをonにする。もしなければ追加する。
ただしこれを行うとApacheはロギング時に毎回DNSLookupを行うようになるため、パフォーマンスに影響が出るらしい。

コメントを書く

XAMPPをphp5設定で動かしているときのphp.iniは/xampp/apache/bin/php.ini

なぜかもう二つ/xampp/php/フォルダにiniがあるけど、どうやらそれはphp4の時に使ったりするらしい。

しかしなんで3つもあるんだ?よくわからんな…

コメントを書く

古い投稿 »