【PHP】下らねぇ質問はここに書き込みやがれ 32
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/11/06(月) 22:07:16ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
【前スレ】
【PHP】下らねぇ質問はここに書き込みやがれ 31
http://pc8.2ch.net/test/read.cgi/php/1161733546/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しない)
・ サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0002nobodyさん
2006/11/06(月) 22:08:21ID:???http://pc8.2ch.net/test/read.cgi/php/1153652403/
【PHP】下らねぇ質問はここに書き込みやがれ 26
http://pc8.2ch.net/test/read.cgi/php/1154923910/
【PHP】下らねぇ質問はここに書き込みやがれ 27
http://pc8.2ch.net/test/read.cgi/php/1156262092/
【PHP】下らねぇ質問はここに書き込みやがれ 28
http://pc8.2ch.net/test/read.cgi/php/1157284868/
【PHP】下らねぇ質問はここに書き込みやがれ 29
http://pc8.2ch.net/test/read.cgi/php/1158434799/
【PHP】下らねぇ質問はここに書き込みやがれ 30
http://pc8.2ch.net/test/read.cgi/php/1159979905/
0003nobodyさん
2006/11/06(月) 22:09:52ID:???■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル http://framework.zend.com/manual/ja/
(以下英語)
■Smarty http://smarty.php.net/
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん
2006/11/06(月) 22:10:58ID:???http://pc8.2ch.net/php/subback.html
PHPで検索汁!
0005nobodyさん
2006/11/06(月) 22:11:44ID:???1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
0006nobodyさん
2006/11/06(月) 22:12:42ID:???→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
0007nobodyさん
2006/11/06(月) 22:21:11ID:???0008nobodyさん
2006/11/06(月) 22:28:41ID:GtGInv5r例えば、「バナナ(1)、りんご(2)、みかん(3)」とあったとします。()内は順番です。
これをechoすると
バナナ
りんご
みかん
と表示したいのです。どうすればいいかずっと悩んでいるのですが、
わかりません。アドバイスいただけないでしょうか
0009nobodyさん
2006/11/06(月) 22:56:06ID:???ユーザー関数で比較してソート
例文ちょっと改造して動かしてみたがこれでいけたぽいぞ
$array = array(
"みかん(3)",
"バナナ(1)",
"りんご(2)"
);
function cmp($a, $b)
{
preg_match("/\(([0-9]+)\)/", $a, $a);
preg_match("/\(([0-9]+)\)/", $b, $b);
$a = $a[1];
$b = $b[1];
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
usort($array, "cmp");
0011ご伝授下さい
2006/11/07(火) 00:13:59ID:???http://example.com/hoge.php
というファイルに
<?PHP
$query = getenv ("PATH_INFO");
include("$query");
print"<img src=\"./img/hoge.jpg\">";
?>
と記載しております。
http://example.com/hoge.phpでアクセスすると
<img src=\"./img/hoge.jpg\">は通常通りブラウザで画像は表示されますが、
http://example.com/hoge.php/hogehoge/でアクセスすると
<img src=\"./img/hoge.jpg\">は画像は表示されません。
対応策としては画像等のパスを<img src=\"/img/hoge.jpg\">にするしか無いのでしょうか?
初心者ですみません><
どなたかご伝授の程、よろしくお願い致します。
0012nobodyさん
2006/11/07(火) 00:31:59ID:???サーバーはhoge.phpがファイルであることを認識できるけど、ブラウザはhoge.phpがファイルなのかディレクトリなのか判別できない。
つまり、/hogehoge/の部分がPATH_INFOであるかどうかは、ブラウザにはわからない。
だから、imgタグのsrcに相対パスを使うと、ブラウザは/hoge.php/hogehoge/img/hoge.jpgから画像を取得しようとしてしまう。
(この場合、サーバーはhoge.phpに対して/hogehoge/img/hoge.jpgをPATH_INFOとして渡していて、テキストデータを出力しているので、当然画像は表示されない)。
srcには相対パスを使わず絶対パス(/img/hoge.jpg)にするのが無難だと思う。
0013nobodyさん
2006/11/07(火) 00:33:25ID:???その発想はなかったわ
0014nobodyさん
2006/11/07(火) 00:34:33ID:???つーか、ちょっとまて。
$query = getenv ("PATH_INFO");
include("$query");
はやめとけってwww
サーバーのリソースに不正アクセスされまくるぞwww
0015ご伝授下さい
2006/11/07(火) 00:53:16ID:???ありがとうございます。無難に(/img/hoge.jpg)に変更します。
解りやすいご説明ありがとうございました。
>>14
ありがとうございます。早速修正します^^
0016nobodyさん
2006/11/07(火) 01:27:29ID:x6c5yFrE接続するときに必要な
$conn = mysql_connect('localhost','my_id','my_pass');
mysql_select_db('my_id',$conn);
これを毎回書き込むのがめんどくさいと感じているのですが
別のPHPファイルに記述しておいてincludeで呼び出す方法をとればいいですかね?
なんとなくセキュリティ的にまずいのではないかと思って質問してみました。
.htaccessを利用すれば問題なく動作させることができるのでしょうか?
0017nobodyさん
2006/11/07(火) 01:43:53ID:???ドキュメントルート下に置かないってのは当然として。
0018nobodyさん
2006/11/07(火) 03:23:36ID:???DBのアクセスクラス作って、それをincludeすればいいと思う。
オレは使ってないけど、どっかのライブラリ使うのが一番いいのか?
0019nobodyさん
2006/11/07(火) 03:47:02ID:Sqm+J9JFというエラーがとれません。どうすればいいのでしょうか
<?php
session_start();
include("mysql.php");
?>
<html>
とセッションを使うのに適している記述だと思うのですがエラーがとれません
どうすればよろしいのでしょうか?
0020nobodyさん
2006/11/07(火) 04:04:52ID:???セッションにCookieを使うならスクリプトの先頭に置く。
文字を出力する前にsession_start()しなければならない。
0021nobodyさん
2006/11/07(火) 04:04:52ID:???0022nobodyさん
2006/11/07(火) 04:38:07ID:Sqm+J9JFスペースなど一切入っていません
1行目に<?php
2行目にsession_start();
です。
0023nobodyさん
2006/11/07(火) 05:11:39ID:???0024nobodyさん
2006/11/07(火) 07:48:16ID:???Telnetかなんかで叩いて送られてきたドキュメントを確認してみたら分かるんじゃない
送信済みになってるのは間違いないんだから
0026nobodyさん
2006/11/07(火) 09:35:48ID:???0027nobodyさん
2006/11/07(火) 09:41:20ID:C4kT4pauSmartIRCってのを使おうとしたら
socket extension not loaded
なエラーが出ますがどうしたらよいでしょうか
0028nobodyさん
2006/11/07(火) 09:45:40ID:qhJadrD30029nobodyさん
2006/11/07(火) 09:46:25ID:???コンフィギャーに--enable-socketsを追加してリコンパイルしてみたらどうでしょう
すでにコンパイルされてるならphp.iniでextension=php_sockets.dllを有効にしてみるとか
0030nobodyさん
2006/11/07(火) 09:50:46ID:???0032nobodyさん
2006/11/07(火) 10:01:52ID:???ありがとん。
一応有効にして再起動したけど、駄目ですた。
sqlliteとかはロードできてるんですけど・・・。
0033nobodyさん
2006/11/07(火) 10:02:22ID:???返さない方法はありますか?
ほかのメソッドはprotectedをつければ返されないのですが、
コンストラクタはprotectedをつけるとエラーが出てしまいます。
0034nobodyさん
2006/11/07(火) 10:02:32ID:oogNIDZJgo-pear.phpからインストールしてapacheのhtdocsの中にpearがあります。
このままファイルごと削除するだけでクリーンにアンインストールできるでしょうか?
■ このスレッドは過去ログ倉庫に格納されています