※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

文字コードは何を使えばいいの?

UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。

スレに書き込むときに自分のサイト名を晒したくない

http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。

ブラウザに何も表示されないんだけど・・・

Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
スクリプトエラーが発生しているのにdisplay_errorsがOffになっているため、エラーが見えないのかも。エラー表示するか、エラーをファイルに書き出せ。

記号の意味がわからないけどググりようがない

「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較

echo "$arr['hoge']['fuga']"; と書いたらエラーになった

{おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする

一定時間ごとに自動的に何かしたいんだけど

cronかタスクスケジューラを使え。

extractって危険なの?

変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。

include/requireに「~.php?a=b&c=d」のようなパラメータをつけたい

URL呼び出しなら可能だけど、普通のファイル呼び出しではできません

include/requireでURLを指定しても何も起きない

.phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。

そもそもインストールの時点でうまくいかない

確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり

SQLの質問はどこで?

データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する

文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?

ctype_~()が手軽。複雑なパターンはpreg_~()あたりで正規表現を使う。

$a1, $a2, $a3 ... のような変数名をうまく扱いたい

可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター

echoとprintってどう違うの?

よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40

クッキーの情報をユーザから隠したい

セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな

strip_tags()で削除しないタグを複数指定したい

strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし

CSVやTSVのファイルをスマートに扱いたい

まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。

値渡しと参照渡し(「&」を使う)のパフォーマンスの違い

C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする。
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと。

ファイル入出力関数(fopen等)でリモートファイル(http://~とか)を扱う際の限界

fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる

画像処理一般 or GDの限界

ImageMagick(PECLのやつ or シェルから実行)

画像・音・動画はファイルで保存?DBに保存?

好きにしてください

なんか$_GETとか$_POSTとかに余計な¥が入るんだけど

php.iniのmagic_quote_gpcをOffにしてください。百害あって一利なしです。

サニタイズはどのタイミングでするべき?

ブラウザに対して出力する際にサニタイズするのがよいと思います。データベースなどにデータを保存する段階でサニタイズしてしまうと、データをブラウザに対して出力する以外の目的で利用するとき(例えばデータをプレーンメールとして送るなど)に、面倒な処理をすることになってしまいます。ってかサニタイズいうな

setcookie, session_startなんかを使うと、"Warning: Cannot modify header information - headers already sent"ってなって、うまく行かないんだけど。

それらを呼ぶ前に文字を出力しちゃダメ。呼ぶ前に、echoとかprintとかでなんかの文字を出力していないか確認。それでもダメならファイルがBOM付きになっていないか確認。BOM付きだとNG。BOM無しで保存すること。