トップページ⇒php
1001コメント331KB

【PHP】下らねぇ質問はここに書き込みやがれ 32

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/11/06(月) 22:07:16ID:???
PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【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:???
【PHP】下らねぇ質問はここに書き込みやがれ 25
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:???
【簡易FAQ】
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:???
10. そもそもインストールの時点でうまくいかない
 → 確認すべきは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
DBを使用せずに表示順番を指定の通りにする事はできませんでしょうか?

例えば、「バナナ(1)、りんご(2)、みかん(3)」とあったとします。()内は順番です。
これをechoすると

バナナ
りんご
みかん

と表示したいのです。どうすればいいかずっと悩んでいるのですが、
わかりません。アドバイスいただけないでしょうか
0009nobodyさん2006/11/06(月) 22:56:06ID:???
ttp://php.net/usort
ユーザー関数で比較してソート

例文ちょっと改造して動かしてみたがこれでいけたぽいぞ

$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");
001082006/11/06(月) 23:21:05ID:???
>>9
表示されました!参考URLもありがとうございます。
ずっと悩んでいたのですが、だいぶ前進しました。ありがとうございました。
0011ご伝授下さい2006/11/07(火) 00:13:59ID:???
PATH_INFOを使ってPHPを動作させたいんですが
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:???
>>11
サーバーは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:???
>>11
つーか、ちょっとまて。
$query = getenv ("PATH_INFO");
include("$query");
はやめとけってwww
サーバーのリソースに不正アクセスされまくるぞwww
0015ご伝授下さい2006/11/07(火) 00:53:16ID:???
>>12
ありがとうございます。無難に(/img/hoge.jpg)に変更します。
解りやすいご説明ありがとうございました。
>>14
ありがとうございます。早速修正します^^
0016nobodyさん2006/11/07(火) 01:27:29ID:x6c5yFrE
MySQLを使ってDBと連携したシステムを作ろうとしているのですが
接続するときに必要な
$conn = mysql_connect('localhost','my_id','my_pass');
mysql_select_db('my_id',$conn);
これを毎回書き込むのがめんどくさいと感じているのですが
別のPHPファイルに記述しておいてincludeで呼び出す方法をとればいいですかね?
なんとなくセキュリティ的にまずいのではないかと思って質問してみました。
.htaccessを利用すれば問題なく動作させることができるのでしょうか?
0017nobodyさん2006/11/07(火) 01:43:53ID:???
includeしたらいいんじゃね?
ドキュメントルート下に置かないってのは当然として。
0018nobodyさん2006/11/07(火) 03:23:36ID:???
>>16
DBのアクセスクラス作って、それをincludeすればいいと思う。
オレは使ってないけど、どっかのライブラリ使うのが一番いいのか?
0019nobodyさん2006/11/07(火) 03:47:02ID:Sqm+J9JF
Warning: session_start(): Cannot send session cache limiter - headers already sent
というエラーがとれません。どうすればいいのでしょうか
<?php
session_start();
include("mysql.php");
?>
<html>
とセッションを使うのに適している記述だと思うのですがエラーがとれません
どうすればよろしいのでしょうか?
0020nobodyさん2006/11/07(火) 04:04:52ID:???
マニュアルよく嫁。
セッションにCookieを使うならスクリプトの先頭に置く。
文字を出力する前にsession_start()しなければならない。
0021nobodyさん2006/11/07(火) 04:04:52ID:???
<?phpの前に改行とか入ってんじゃね?
0022nobodyさん2006/11/07(火) 04:38:07ID:Sqm+J9JF
19です。
スペースなど一切入っていません
1行目に<?php
2行目にsession_start();

です。
0023nobodyさん2006/11/07(火) 05:11:39ID:???
includeしてるから
0024nobodyさん2006/11/07(火) 07:48:16ID:???
BOMがついてるとか、バッファが足りないとか
Telnetかなんかで叩いて送られてきたドキュメントを確認してみたら分かるんじゃない
送信済みになってるのは間違いないんだから
0025nobodyさん2006/11/07(火) 09:33:26ID:???
回答者しかいねえのかよ!おれならもっとすばらしい回答できるぜ!
>>19にはやくこたえろや!!!
0026nobodyさん2006/11/07(火) 09:35:48ID:???
回答とかうんぬん言う前に日本語の勉強からやり直してきてくれ
0027nobodyさん2006/11/07(火) 09:41:20ID:C4kT4pau
自鯖で
SmartIRCってのを使おうとしたら
socket extension not loaded
なエラーが出ますがどうしたらよいでしょうか
0028nobodyさん2006/11/07(火) 09:45:40ID:qhJadrD3
まったくのPHP初心者でも基礎学べるお勧めの書籍教えてください
0029nobodyさん2006/11/07(火) 09:46:25ID:???
>>27
コンフィギャーに--enable-socketsを追加してリコンパイルしてみたらどうでしょう
すでにコンパイルされてるならphp.iniでextension=php_sockets.dllを有効にしてみるとか
0030nobodyさん2006/11/07(火) 09:50:46ID:???
dllじゃないやso
0031nobodyさん2006/11/07(火) 09:53:43ID:???
>>26
がったがたうるせーんだよ!へぼ回答者がっ!
0032nobodyさん2006/11/07(火) 10:01:52ID:???
>>29
ありがとん。
一応有効にして再起動したけど、駄目ですた。
sqlliteとかはロードできてるんですけど・・・。
0033nobodyさん2006/11/07(火) 10:02:22ID:???
get_class_methodsでクラスのコンストラクタを
返さない方法はありますか?

ほかのメソッドはprotectedをつければ返されないのですが、
コンストラクタはprotectedをつけるとエラーが出てしまいます。
0034nobodyさん2006/11/07(火) 10:02:32ID:oogNIDZJ
winでpearのアンインストールがわかりません。
go-pear.phpからインストールしてapacheのhtdocsの中にpearがあります。
このままファイルごと削除するだけでクリーンにアンインストールできるでしょうか?
■ このスレッドは過去ログ倉庫に格納されています