【PHP】下らねぇ質問はここに書き込みやがれ 61
at PHP
1:nobodyさん
07/12/19 03:33:51
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
2:nobodyさん
07/12/19 03:33:53
【簡易FAQ】 (1/3)
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ URLリンク(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プログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
3:nobodyさん
07/12/19 03:33:54
【簡易FAQ】 (2/3)
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
URLリンク(www.faqts.com)
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.を参照
4:nobodyさん
07/12/19 03:33:54
【簡易FAQ】 (3/3)
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
5:nobodyさん
07/12/19 03:33:55
関連リンク
■本家マニュアル URLリンク(www.php.net)
■日本PHPユーザ会 URLリンク(www.php.gr.jp)
■PEARマニュアル URLリンク(pear.php.net)
■メーリングリスト URLリンク(ns1.php.gr.jp)
■ZFマニュアル URLリンク(framework.zend.com)
(以下英語)
■Smarty URLリンク(smarty.php.net)
■Zend本家 URLリンク(www.zend.com)
■Zend Framework URLリンク(framework.zend.com)
■php | architect URLリンク(www.phparch.com)
■Smartyマニュアル URLリンク(smarty.php.net)
■PECL本家(英語) URLリンク(pecl.php.net)
6:nobodyさん
07/12/19 03:33:56
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 59
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 58
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 57
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 56
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 55
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 54
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 53
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 52
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 51
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 50
スレリンク(php板)
7:nobodyさん
07/12/19 04:40:48
httpsのソースを取得したいです。
php5でwindowsです。
いろいろ探しましたが、
http_clientとか
--with-openssl でコンパイルするとか
php4ts.dllを差し替えるとか
どれもphp5でwindowsだと無理?と思われました。
本当に無理なのでしょうか?
8:nobodyさん
07/12/19 08:48:39
phpではhttpsは無理
rubyなら簡単に取得できる
9:nobodyさん
07/12/19 08:51:35
>>8
いや別に無理じゃないが…
面倒くさいけど。
10:nobodyさん
07/12/19 10:21:11
最短一致が2つあると思うように機能しません。
preg_match("/<p.*?NGWORD.*?<\/p>/", "<p id=A><p id=B><a >NGWORD</a></p></p>", $r);
結果:<p id=A><p id=B><a >NGWORD</a></p>
id=Aは余分です。こういうものなのでしょうか?
さくらで試したのでphp4だと思います。
11:nobodyさん
07/12/19 11:28:20
>>10
その正規表現だと当然のような
あとは正規表現スレで頑張ってね
12:nobodyさん
07/12/19 12:20:31 F1MTppUB
POSTしたデータを取得したいんですが、TEXTBOXに「'\'」(シングルコーテーション+\サイン+シングルコーテーション)
を入力してSUBMITすると、受け取ったPHPでは"\\'\\\\\\'"と入っています。
エンコードされないデータを取得するにはphp://inputを使うしかないんでしょうか?
13:nobodyさん
07/12/19 12:23:25
magic_quote_gpcをoffにすれ
14:nobodyさん
07/12/19 12:28:34
magic_quotes_gpcがonなんじゃないの?
URLリンク(jp.php.net)
ここみながら確認しる
onならoffへ変更してあげてね
15:nobodyさん
07/12/19 12:31:22
1000 名前:nobodyさん[sage] 投稿日:2007/12/19(水) 09:15:15 ID:???
1000だったら、php全滅
@一昔前はPerlの達人と恐れられたが、Rubyのクラスが分けわからず時代に乗り遅れた化石Perler
AJAVAの思想は素晴らしいのに周りに理解者が少なく、コストの問題でクライアントがPHPを指定してきて嫌々やらされているJAVAer
B周りはネット全盛なのに、未だにSoketプログラムが理解できずネットの海に出られない鎖国状態のVisualStudioer
CwebデザイナーはPHPぐらいできないとゴミと言われて、いつの間にかPGにさせられてしまった自称webデザイナー
Dプログラマーという職業に憧れているけど、PG的思考ができずに指をくわえて見ていることしかできないゲーマー
さあレッツ プロファイリング!
16:nobodyさん
07/12/19 12:36:47
設定変えると影響範囲がでかいから、自分は stripslashes 使ってる。
17:nobodyさん
07/12/19 12:40:16
>>13-14
正にその通りでした。ありがとうございます!
18:nobodyさん
07/12/19 12:40:30
>>12
ところで、php://input って何?
19:nobodyさん
07/12/19 12:40:41 F1MTppUB
すいません。>>17=12です。
20:12
07/12/19 12:44:48
>>18
以下、URLリンク(phpspot.net)からの抜粋ですが、
php://input は、POST の生データの読み込みを 許可します。
これは $HTTP_RAW_POST_DATA に比べて メモリ消費量が少なく、特別な php.ini ディレクティブを設定する 必要がありません。
php://input は、 enctype="multipart/form-data" に対しては 使用できません。
21:nobodyさん
07/12/19 12:57:14
>>20
ありがとう。勉強になった。
22:教えて下さい
07/12/19 17:15:38 n596SeRo
URLリンク(www.phpweb.jp)
ここで配布されているファイルをUTF-8にソースコードを変えたんですが、
148行目ぐらいの
// 投稿処理
function send() {
$data = file("./lineboard/log.txt");
$newtime = time();
この投稿処理の項目がshift-jisでエラーコードが返されるのでUTF-8でエラー表示をかえしたいんですが
どこをいじってあげればいいのかアドバイスくれないでしょうか。
sjisコードをutf-8で置き換えたんですが、エラーの時の投稿処理される
メッセージが長すぎますなどがsift-jisで返されるので文字化けしていまいます。
23:nobodyさん
07/12/19 17:43:52
print "<html>\n";
print "<head>\n";
print "<meta name=\"robots\" content=\"index,follow\">\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n";
print "<meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n";
print "<meta http-equiv=\"content-script-type\" content=\"text/javascript\" />\n";
print "</head>\n";
これでいけました
解決
24:nobodyさん
07/12/19 18:53:57 E60FAw4D
すみません。PHP4の本を読んでサンプル改変してるのですが、PHP4の本はレジスターグローバルをonにしてあるため
ちょっと迷っています。ちなみに可変変数を使っているので私にはむずかしく、、助言をお願いしたいしだいです。
原文は
$data = "FIELD_$j";
$data = $$data;
という2文です。ちなみにforループの中で$jをカウント変数で使っています。
FIELD_$jというのは、WEBページのテキストボックスに上からFIELD_0,FIELD_1...と
つけた名前です(<input type="text" name="FILED_0">という感じで)。
レジスターグローバルをオフにしているため、
$_POST['FIELD_$j']としなくてはならないのですが、そうするためには
$data = "_POST['FIELD_$j']";
$data = $$data;
で文法的に正解でしょうか?よろしくお願いします。
25:nobodyさん
07/12/19 20:30:00
なんて本だ?そんな糞コードのっけてる本捨てちまえ。
26:nobodyさん
07/12/19 21:30:31
>>24
捨てろ
27:nobodyさん
07/12/19 21:36:30
簡単なプログラムでもDBを導入したほうが効率が良いのでしょうか?
アクセスカウンタを例にしますと、
テキストのログファイルを読み込ませるほうがよいのでしょうか?
この程度でもDBと連携させたほうが効率が良いのでしょうか?
簡単なものはテキスト、中規模以上はDBって感じでしょうか?
小さくてもアクセス頻度が高い場合はDBのほうが安全なのでしょうか?
速度、鯖の負荷、その他ありましたら教えてください
よろしくおねがいします
28:nobodyさん
07/12/19 21:37:44
>>27
DB板で聞け
29:nobodyさん
07/12/19 21:42:39
>>24
$data = "_POST['FIELD_$j']";
$data = $$data;
↓
$data = $_POST["FIELD_$j"];
この一行でOKでは
なんて本、それ
30:nobodyさん
07/12/19 22:08:24
>>27
好みの問題。好きにしろとしか言えない。
後々の拡張性とか考えるとDBのほうが楽ではあるが。
31:nobodyさん
07/12/19 22:14:57
>>27
>>30
URLリンク(pc11.2ch.net)
32:nobodyさん
07/12/19 22:29:41
>>30
知ったかはヤメロ。
アクセスログをDBなんかでやったら、
通常のレン鯖で1時間3000PVでコネクションオーバーでエラーが出る。
33:nobodyさん
07/12/19 23:51:11
>>32
カウンターの話をしてるのにおまいは何を言ってるんだ
34:nobodyさん
07/12/19 23:52:23
自分でCで作ったサーバにPHPからデータを渡したいんですが,良い方法ありますか?
今はとりあえずストリームソケット用いてやっています・・・
35:nobodyさん
07/12/19 23:56:55
>>32
>通常のレン鯖で1時間3000PVでコネクションオーバーでエラーが出る。
出ないし。
ていうか、DBより1時間に3000PVとか転送量のほうが問題だ。
36:nobodyさん
07/12/20 00:01:22
レベルひっくwww
37:nobodyさん
07/12/20 00:09:19
エサを与えないでください
38:nobodyさん
07/12/20 00:28:55
んでどれが正しいの?
39:nobodyさん
07/12/20 01:39:32
規模を考えるより使いやすいほうでやればいいんでないの?
簡単なものでテキストで処理したほうが楽だと思うならそうすればいいし
普段からDB使ってるしDBのほうが楽だと思うならそうすればいい
40:nobodyさん
07/12/20 02:17:17
1時間に3000PVって全然少なくないか?
41:nobodyさん
07/12/20 02:32:58
>>40
確かに少なすぎだね。俺のサイトで3000PVって言ったら1分で、それくらい行くから。
42:nobodyさん
07/12/20 02:36:41
個人サイトでは多い方だとは思うけど、そういうサイトは山ほどあるよな。
レンタルサーバだからといって、多少負荷がかかるにしろ、
その程度のリクエストでDBがパンクしてたらDBなんて許可しないし、
そんな簡単にダウンするほど信頼性の低いもんじゃない。
Googleなんて分散してるとはいえ、1台あたり1秒にどんだけこなしてると思ってるんだ?
43:nobodyさん
07/12/20 04:35:22
ぐぐるさんのDBは独自拡張だから比較対照にはならんな
44:nobodyさん
07/12/20 04:45:08
年賀状3枚入り買ったんだけど出す相手が一人しかいないので、2枚余りました。
年賀状欲しい人は、住所と名前を書いてもらえば出します。
45:nobodyさん
07/12/20 06:10:17 8BakDrsf
前スレのセッション談義見て不安になったんですが、
(スレリンク(php板:814番))
今作ってる会員システムでは
1)ログインID,ログインPassを使って登録済み情報からユーザ名とidを抜き出す
2)それぞれセッションに入れて
ユーザ名は「○○さんの管理ページ」の表記に使う
idはいろんな情報を登録・更新するときのキーに使う
という風にしています。これはまずいんでしょうか?
また、会員エリア内でフォーム記入→確認ページ という流れで、
修正時に記入ページに戻るときにもフォームに値を入れるためにセッション使ってます
これもまずいとすればこの部分はどうしたらいいんでしょうか?
46:nobodyさん
07/12/20 06:17:36
>>45
Webアプリのセキュリティについて調べろ
47:nobodyさん
07/12/20 08:21:04
分かんないひとはレスしないでください(>_<)
48:nobodyさん
07/12/20 09:07:38
まずい、ってのはどういう意味?
スレリンク(php板:814番)
↑
これには「セッションなんてログインしたときだけ値を持たせる 」
とは書いてあるけど、
49:nobodyさん
07/12/20 09:10:35
セッション使わないでHIDDENで持ち回すほうがよっぽど…
50:45
07/12/20 09:26:29 8BakDrsf
>>46
どうもです あれこれサイト見て勉強します
>>48
どうもです まずい というのは上記の程度のセッションの利用でも、それをきっかけに
のっとりとかされてしまうのかなぁと、、
「修正シーン」に記入値をセッション引用して入れるのも、「ログインしたときだけ値を持たせる」の
ルールからすればダメなのかな、など気になります(別のやり方が思いつかない)
>>49さんの言うとおりhiddenでまわす方法があるのも調べてわかりましたが、
そしたら全部のリンクがpostになる?わけで、デザイン的にいやだしと、、
気が向いたときに回答いただけたら十分なのでよろしくお願いします
自分でも引き続き調べてみますので
51:nobodyさん
07/12/20 12:01:24
だれがログインしてるかって言う情報はサーバが管理すべきものだから、
セッションで管理すべきもの。
今画面に何を表示しているかについては、議論なり判断があって良いと思うけど、
これについては、個人的には hidden 推奨。
52:nobodyさん
07/12/20 12:04:00
同意。formタグ内で統一できて分かりやすいし、楽。
53:nobodyさん
07/12/20 12:11:34
こういう時はsessionだろ
54:nobodyさん
07/12/20 12:53:32
さあまた盛り上がってまいりました
55:45
07/12/20 14:09:16 8BakDrsf
>>51-52
え? つまりフォームの記入(修正)ページに入れる値は、hiddenですか?
てことは確認ページで
<input type="hidden" name="namae" />などしてキープして、
戻るボタンにjavascriptかなんかで修正ページに向けてsubmitするの?
ちょっと本屋で見てこよう、、
56:nobodyさん
07/12/20 14:12:30
ポカーン・・・
57:51
07/12/20 14:43:41
>>55
JavaScript使用可の前提で書くけど、どっちにするかといえば、Hiddenにする。
自分が作るなら、確認用ページはJavascriptで生成するようにする。
確認ページ表示に、サーバに問い合わせる情報が必要であればAjax的な方法で取得する。
携帯みたいな通信コストが無視できない場合は、セッションでの管理も考えるけど。
58:nobodyさん
07/12/20 14:49:48
会員の情報をサーバーに問い合わせるのにAjaxて怖くない?
サーバーサイドで完結してたほうがいいような気がするが。
59:nobodyさん
07/12/20 14:54:08
>>58
何で?
Ajaxでもセッション管理は出来るし、不要な情報はブラウザに返さなければ良いし。
60:45
07/12/20 21:21:17
>>57
なるほど 携帯とPCで使い分けするんですね、考えたこともありませんでした
あの、最後にひとつだけ聞きたいんですが
<input type=text name=namae>ってのが記入ページにあったとき、
確認ページは
<form action=kanryou.php>
<input type="hidden" name="namae" value="<? echo $_POST['namae']; ?>">
<input type="submit" value="完了ページへ">
</form>
ていう完了ページに飛ぶ用のフォームと
<form action="kinyu.php">
<input type="hidden" name="namae" value="<? echo $_POST['namae']; ?>">
<input type="submit" value="戻って修正">
</form>
という修正ページに飛ぶ用のフォーム2つを用意するんでしょうか?
フォームは一個で、クリックされたサブミットボタンに応じてactionの値を切り替えるの?
いい加減しつこいとは思うので、本当に暇な人、答えてくれれば結構です。sageます
61:nobodyさん
07/12/20 21:39:52
いくらなんでもスレ違い過ぎ…
62:nobodyさん
07/12/21 00:43:35
>>60
<input type="submit" name="action" value="確認">
<input type="submit" name="action" value="修正">
っていう風にすれば、$_POST["action"]を取得することでどの画面をだせば
いいかは分かるんで、確認画面にフォーム二つもいらない。
書き込みも確認も書き込み完了も、どの画面も全部同じひとつのPHPで扱うけどね。
わざわざ三つとかに分けたりしない。
フォーム入力値の受け渡しはセッションでやった方が楽だけど、既出の
通りブラウザ複製などの場合値が書き換わっちゃうのでやらない。
携帯ならこの問題がないけど、セッション使えないのもあるのでやっぱ
hidden使うかなあ。
セッション使うって言ってる人はこの問題にどう対応してるのか不思議。
63:nobodyさん
07/12/21 00:59:28 9upg4HjC
セッションというのは諸刃の刃だよ。
セッションを使うことによってセキュリティーは向上するけど、
多用しすぎることで、パフォーマンスが劣化し、結果的にセキュリティーが劣化するというジレンマ。
例えて言えば、医学が進歩して寿命が延びることで、不労人口が増えて、
結果的に人類が滅びるというジレンマだよ。
つまり、目先の良さにばかりいくと、長期的には全く逆の結果になるということ。
64:nobodyさん
07/12/21 01:03:49
セッション多用でセキュリティが低下ってのはわからんなー
セッション多用してメモリがいっぱいいっぱいになる可能性があるってーなら解るが
65:nobodyさん
07/12/21 01:04:23
>>63
意味不明
医学が発展することが人類が滅びることとどう結びつくんだよw
66:nobodyさん
07/12/21 01:12:13 9upg4HjC
>>65
想像力働かせろよ。
プログラマー脳の典型だよ、まぁ設計には一生なれないな、お前は。
200歳まで生きられる医術・薬品が開発される
↓
生殖機能を持たない、エネルギーだけを消費する不労生体が増える
↓
1人の若者が100人の老体を面倒見る。仕事している暇がない。
↓
国家財政破綻、国力ゼロ、防衛能力ゼロ
↓
発展途上国の台頭、テロリストの台頭
↓
国際経済破綻、無政府状態
67:nobodyさん
07/12/21 01:15:58
>パフォーマンスが劣化し、結果的にセキュリティーが劣化する
何故に?
68:nobodyさん
07/12/21 01:17:05
>>66
君は朝鮮人並の誇大妄想脳だねww
69:nobodyさん
07/12/21 01:17:13
>>66 は無視して良い話だろうけど、メモリを消費しすぎて落ちやすくなれば ISMSで言うところの
可用性が低下するので、広義のセキュリティが低下したと言えなくも無い。
70:nobodyさん
07/12/21 01:19:51
>>66
65では無いがお前の方が想像力なく見えるぞ
71:nobodyさん
07/12/21 01:26:24 9upg4HjC
お前らw
人を批判する前に、原因と結果の繋がりを細かく検証しろよ。
セッション多用
↓
メモリー消費、オーバーフロー
↓
HDDへのスワップが多発
↓
システムが不安定
↓
HDDの中身が画面に表示される
↓
セキュリティー劣化
72:nobodyさん
07/12/21 01:28:42 1HbS1x3e
PHPって配列を関数に渡すと、内容がコピーされるけど、このコストって意識すべき?
参照渡しすると、値が書き換えられて帰ってくることを期待してるようなソースに見えるのが嫌。
例えば、実は値を変更するまではマジックコピー的に処理してるとかだと気がラクになるんだけど。
73:nobodyさん
07/12/21 01:30:19
それはどちらかというとメモリの使用量とかをしてないのが問題なんだろ
多用してるのが解ってるならだいたいピーク時にどれぐらい消費してるとか
そういうのをチェックしてない時点でダメなんだろ
74:nobodyさん
07/12/21 01:31:37
>>72
基本的に参照渡しもそのまま渡すのも
関数内で変更しない限り内部的に一緒
75:nobodyさん
07/12/21 01:35:41 1HbS1x3e
>>74
ありがとう。気がラクになった。
面倒でなければ、情報ソースかヒントだけでも教えてくれるとありがたい。
76:nobodyさん
07/12/21 01:51:45
>>75
記事自体は凄く古いが
URLリンク(www.sound-uz.jp)
ここだったと思う
まぁphpのサイトにもパフォーマンスのためだけに使うなって書いてるし
URLリンク(www.php.net)
それでも気になるならmemory_get_usageとか使って
メモリの消費量をチェックしてみるといいかもね
77:45
07/12/21 02:41:08
>>62
本当にありがとうございます、感動しました
頑張ります
78:nobodyさん
07/12/21 04:34:35
>>62
>既出の通りブラウザ複製などの場合値が書き換わっちゃうのでやらない。
これなんか問題あんの?
79:nobodyさん
07/12/21 05:02:52 k3WWlkOg
質問です。
指定した数の乱数順列を生成する関数とかってありますか?
例えば10を指定した場合、
4,3,2,9,8,7,10,1,6,5
3,6,4,2,1,9,7,10,8,5
のような並びで配列とかに格納してくれるような感じで。
もし知っている方いましたら教えてください。
お願いします。
80:nobodyさん
07/12/21 06:01:09
>>79
shuffle()
81:nobodyさん
07/12/21 06:18:03
>>80
ありがとうございました。
82:nobodyさん
07/12/21 10:14:56 O7QmdYOi
質問です。
ローカルテストのためWindowsXPにApache/2.0.61(Win32) PHP/5.25をインストーラーでインストールしたのですが、
パスを指定してアクセスすると.phpのファイルだけHTTP500内部サーバーエラーが出て表示してくれません。
.htmlは表示されますし、.pqpとか適当な拡張子をつけたファイルも表示はしてくれました。
Apache MonitorではPHPのバージョン表記もされていて、
インストールは完了しているようなのですが、何か原因が分かればお願いします。
83:nobodyさん
07/12/21 11:07:39
>>76
なるほど。PHPよく出来てるな。
どうもありがとう。
84:nobodyさん
07/12/21 11:18:19
phpの開発に携わるには、どうしたらいいのかな?
こんな中で開発に携わっている人いる?
いや、一つのメソッドでもいいので実装したら、
それだけで経歴書に「phpの開発メンバー」とかって書けるかなぁ、って。
出来たら、自分が作ったメソッドに自分の名前の一部で使えたら最高なんだけど。
85:nobodyさん
07/12/21 11:19:19
>>82
自分は詳しくないけど、まずはApacheのエラーログ見たら?
86:nobodyさん
07/12/21 11:54:40
phpで500エラーってcgiとして動かそうとしてるのか?
87:nobodyさん
07/12/21 11:55:36
って、5.2.4以降はエラーをブラウザに返さないで500出すようになったのか
88:nobodyさん
07/12/21 11:59:36
マッピングされてないだけだったりして
89:nobodyさん
07/12/21 12:04:23
>>84
単にPHP自体の開発が出来るということを示したいだけなら、
野良モジュールをpeclにでも登録すれば?
あるいはメインストリームなモジュールのバグ一覧を見て、
未解決のバグのパッチを辛抱強く投げつづけるか。
そうでなければ、本家MLに参加して議論とパッチの応酬を繰り返すとか。
しかし経験からいわせてもらうと、PHPの開発がホイホイ出来る奴は
PHP言語を使う仕事にはなかなかつかせてもらえない罠
90:nobodyさん
07/12/21 12:10:20
ちと質問なんですが、
『排他ロック中には他のプロセスが割り込めないので
ロックは1つかければ十分』…と聞いたんですが
例えば…
$lock_fp = fopen("lock.txt","w");
flock($lock_fp,LOCK_EX);
$fl = fopen("data.dat","w");
if($fl){
fwrite($fl,$write_data);
fclose($fl);
}
fclose($lock_fp);
こうしておけば、data.datの方もlock.textがロック解除されるまでは
書き込んだりできないんでしょうか?
91:nobodyさん
07/12/21 12:29:26
>>89
なるほど、参考になるわ。ありがとう。もしかして、開発メンバー?
>しかし経験からいわせてもらうと、PHPの開発がホイホイ出来る奴は
>PHP言語を使う仕事にはなかなかつかせてもらえない罠
これは、どうして?
PHPを開発した人は守秘義務とかに縛られて、
PHPを使った開発はできないとか?
>>90
これ、ちょうど俺が実装したかったロジックだ。なんというタイミング。
俺が実装したいメソッドは、一つのメソッドで面倒なロックをやってくれるもの。
boolean write_data_with_safety_lock($file_name, $data)
ファイル名と書き込みデータを引数で渡せば、
ロック機構を実装したこのメソッドが安全に書き込めるというメソッド。
このメソッド作ったら、絶対php6.0とかに採用されると思っているんけど。ニーズも絶対あるし。
92:nobodyさん
07/12/21 12:47:28
phpはオープンソースです
93:nobodyさん
07/12/21 13:02:05 S3fUHMf0
pearだったかのコーディング規約で、PHPだけのファイルの場合、
<?php だけで、最後の ?> は付けないってのがあったと思うんだけど
これって個人的にはすごく気持ち悪いんですが、こんなもんなんでしょうか?
94:93
07/12/21 13:03:54
>>93
ああ、ZendFrameworkのコーディング規約でした。
95:nobodyさん
07/12/21 13:10:57
最後に?>を付ける事によって?>以降に書かれた文字列が表示される
表示される事による見つけにくーいバグを回避する事ができる
と俺は勝手に解釈
まぁ画像をphpで出力されてたりとか
携帯向けにHTML出力する時にこういうので苦労した事あったから
俺はつけないけど
96:nobodyさん
07/12/21 13:13:40
>>91
>>PHP言語を使う仕事にはなかなかつかせてもらえない罠
>これは、どうして?
単なる元野良モジュール作者だけど、
単純にCでマルチプラットフォームな開発が出来る奴ぁそれを仕事にした方がぶっちゃけ収入が良いのです。
97:93
07/12/21 13:52:16
>>95
ああ、なるほど。
改行コードとか目に見えにくい文字列もありますね。
ありがとでした、納得しました。
98:nobodyさん
07/12/21 14:35:20 J4pqu08c
童貞先輩が新人女子OLにアタックしてるwww何とかしてくれwww
99:nobodyさん
07/12/21 15:20:15
くだらねえwww
100:nobodyさん
07/12/21 15:46:33
おい上原ぁ!!お前が何とかしろ!
101:nobodyさん
07/12/21 15:53:53
""を含むhtmlタグ入り文章をechoやprintで表示、
変数に格納するにはどうしたらいいんでしょうか。
初心者質問スマソ。
102:nobodyさん
07/12/21 16:01:46
> ◆質問する時の注意
> ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
> ・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
> ・ 己の行った操作、変更などを詳しく明記すること。
> ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
> ・ 質問者として、態度をわきまえること。
> ・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
103:nobodyさん
07/12/21 16:03:59
>>101
URLリンク(www.php.net)
104:101
07/12/21 16:04:34
自己解決しました
<a href="index.html">2ちゃんねる</a>だったら
↓
echo "<a href=\"index.html\">2ちゃんねる</a>";とするか
echo '<a href="index.html">2ちゃんねる</a>';とすることで解決しました。
君たちみたいなバカに聞いたのが間違いでした、ニートどもは黙って職安いきなさいクズ
105:nobodyさん
07/12/21 16:11:34 Bll92Vnt
Ethnaでのトランザクション処理について、
DB更新を処理ごとに複数の関数で作成する場合は
エラー時にロールバックするためにそれぞれの関数の頭に
$db = $this->backend->getDB();
$db->db->autocommit(false);
$db->begin();
これを書く必要がありますか?
それとも
$db = $this->backend->getDB();
だけでOKですか?
106:nobodyさん
07/12/21 16:13:00
最近>>1読まないやつ多いな
>・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
107:nobodyさん
07/12/21 16:23:19
$db = $this->backend->getDB();
$db->begin();
のみでOK
108:101
07/12/21 16:40:25
>>103-104
ありがとう。専ブラなんでsageチェック外すの忘れてました。
>>104さん、他人を騙ってる割にはいい人ですね感謝。
109:90
07/12/21 16:57:32 mXpbsFrG
あれま、レスが無いと思いきや、同じくsageてました。失敬。
あらかじめロックファイルの方で排他ロックを制御できれば
処理が簡単でいいなぁ、と思ったんですが、>>90のやり方で
data.datに対しての同時書き込みは防げますでしょうか?
110:nobodyさん
07/12/21 17:00:05 mCAqxYSI
音楽(asxファイル)の再生数をカウントするスクリプトを作りたいのですが
PHPをどこにはさんでよいのかがわかりません。
一覧ページで再生する曲をチェックし、フォームで取得しています。
form actionで指定したページに
<OBJECT ID='Player' width='300' height='48'
CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'>
<PARAM name='autoStart' value='true'>
<PARAM name='URL' value='file_name.asx'>
<embed src='file_name.asx' autostart='true' width=300 height=48></embed>
</OBJECT>
を記述しています。
PHP5.2.4 APACHE2
よろしくお願いいたします。
111:nobodyさん
07/12/21 17:00:17 bUxsI4En
ログイン画面から入る会員領域のトップページを作ってるんですが、
入力されたID・パスが違うときはエラー画面に飛ばす処理が上手くいきません
session_start();
/* ログイン情報問い合わせ-----------------------------------------*/
require_once 'config.inc.php';//DB接続関連の設定ファイルの読み込み
require_once 'adodb/adodb.inc.php';//ADOdbモジュール読み込み
$DB = NewADOConnection(_DB_TYPE);//接続の設定
$DB -> pconnect(_DB_HOST, _DB_USER, _DB_PASS, _DB_NAME);
if(!$DB){//接続エラー時
header("Location: /system/index.html?ec=1");?//エラーページへ
exit;
}
php部分は上記の記述だけですが、表示すらされません。リダイレクトもされません
//if文の中のheader;とexit;をコメントアウトすれば、省略されてる
<html>タグ以下のページデザイン部分が表示されます
headerはすべての出力よりも先に書くというルールは知ってるんですが
何も出力してないはずでわけがわかりません
低レベルですみません、教えてください
112:nobodyさん
07/12/21 17:01:30 bUxsI4En
すみません、間違えました
×入力されたID・パスが違うとき
○接続エラーのとき
113:nobodyさん
07/12/21 17:01:36
>>106
テンプレのスレなんてねーぞコラ
114:nobodyさん
07/12/21 17:02:43
自分で立てろカス
115:nobodyさん
07/12/21 17:15:35
>>113
あるだろボケ
スレリンク(php板)
116:105
07/12/21 17:35:04 Bll92Vnt
>>107
ありがとうございます。助かりました。
>>106
すいませんでした。Ethna固有の機能ではなかったので「Ethnaの環境でやってます」という意識でした。
117:nobodyさん
07/12/21 18:01:23
>>110
音楽ファイルを読み込む前か後ろにカウント処理
118:nobodyさん
07/12/21 18:02:09
>>111
headerの使い方をもう一度確認
119:110
07/12/21 18:42:10 mCAqxYSI
>>117
やってみたのですが、やっぱりページカウンターになってしまいました。
if(isset($_POST['maker'])) {
$db = new mysqli("*","*","*","*");
$stt = $db->prepare("select * from music_lank where url=?");
$stt->bind_param("s",$_POST['maker']);
$stt->execute();
if($stt->fetch()!==TRUE) {
$sql="insert into music_lank(url,count) values(?,1)";
}
else {
$sql="update music_lank set count=count+1 where url=?";
}
$stt->close();
$stt2 = $db->prepare($sql);
$stt2->bind_param("s",$_POST['maker']);
$stt2->execute();
$db->close();
print("
<OBJECT ID='Player' width='300' height='48'
CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'>
<PARAM name='autoStart' value='true'>
<PARAM name='URL' value='ASX/{$_POST['maker']}.asx'>
<embed src='ASX/{$_POST['maker']}.asx' autostart='true' width=300 height=48></embed>
</OBJECT>
<br>
");
}
冒頭の「isset」が原因なのはわかるんですが
埋め込みのメディアプレーヤーの再生ボタンを
押した瞬間にPHPを発動できれば解決なんですが・・・。
120:nobodyさん
07/12/21 19:39:49
そりゃそんなところに仕込めばページカウンターになるw
121:110
07/12/21 19:49:36 mCAqxYSI
どこに仕込めばよいのかがわからないです・・。
122:nobodyさん
07/12/21 19:55:42
>>119
>埋め込みのメディアプレーヤーの再生ボタンを
>押した瞬間にPHPを発動できれば解決なんですが・・・。
むり。どうしてもやりたいならAjaxとかFlashつかえ
123:nobodyさん
07/12/21 19:57:20
1.再生ボタンを素材で用意して、そこを押すと再生ページに移動
2.FlashでActionScriptで組み込む
124:110
07/12/21 20:00:51 mCAqxYSI
>>122
無理でしたか。それが分かっただけで一歩進めました。
ありがとうございました。
>>123
ありがとうございます。
125:nobodyさん
07/12/22 00:11:25
windows, xammp な環境で
URLリンク(localhost)(UTF8なファイル名).html
のようにアクセスすると、ローカル上の
UTF8なファイル名.html
ではなく
SJISなファイル名.html
にアクセスしにいくんですが、これってどういう理屈かご存知の方いませんか?
firefox, ie7 共になります。
これって windows じゃなくて linux サーバ上だと
EUCなファイル名.html
を見にいったりすることになるんですかね?厄介。
126:nobodyさん
07/12/22 00:13:29
>>1
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
127:nobodyさん
07/12/22 00:15:38 YFLFW+ip
echo <<<EOF
〜〜
EOF
ってのがよくあるけど、この〜〜の部分で関数を実行できないの?
echo <<<EOF
<td>$hoge->gethoge(1);</td>
EOF
って感じ。関数でなく、変数を書いてその値を表示ならできたんだけど。。
128:nobodyさん
07/12/22 00:26:48
>>127
>>1
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
129:nobodyさん
07/12/22 00:45:03 VmEGw74T
教えて下さい。
よく、以下の表示を見るのですが、これはどのように制御しているのでしょうか?
セッション数を取得して閾値を越えたら、この表示を出すといった処理なのでしょうか?
私も作りたいとは考えているのですが、何を基準にしていいいのか分かりません。宜しくお願いします。
現在アクセスが集中しています。
現在アクセスが集中しており表示しにくい状態となっております。
申し訳ございませんが、しばらく時間を置いてからアクセスするようお願いいたします。
130:nobodyさん
07/12/22 00:49:58
>>129
httpのステータスコード見て判別すれ
131:nobodyさん
07/12/22 01:39:24
>>127
できるよ。ある関数を使うけどね
132:nobodyさん
07/12/22 01:40:47
>>129
考えられる方法
1.apacheの設定
セッション使うのはもったいないからapacheの設定だな
133:133
07/12/22 03:51:34 PQDDH9MU
レン鯖やヤフーメイルで仮登録
→メールが送られてきて、リンクをクリックすると本登録
→サーバスペースやメールboxが作られる
この一連の動作を自分のサイトで実現しようと思ったら何を勉強すればいいだろうか。
phpとDB系を組み合わせればできる?
134:nobodyさん
07/12/22 04:03:34
>>129
DB関連でエラー出たらそれ出してるんだと思ってた。。
セッションやApacheへの接続数より、DBがボトルネックになることが
多い気がするし、「現在アクセスが集中しています。」の表示が出るまで
ちょっと時間かかるサイトが多いし。
ただしDB接続エラーでこれ出すだけでもDBに負荷かかるんで、132の言う
通りApacheでやるのが一番いいかなあ。
Apacheの設定、PHPでセッション数、DBの接続エラー全部でそういう処理
入れといて、DBの接続エラー出る前にApacheの接続数の上限に達する
ようにうまく調整するのが一番よさそう。
135:nobodyさん
07/12/22 04:21:23
>>133
メールサーバとサーバOSもかな。Webサーバもね。
・仮登録メールを受信してPHPを実行する仕組みが必要。これはメールサーバ。
本登録用のメールはPHPがメーラーの役割を果たして、メールサーバ利用して
返信する。
・サーバスペースは物理的にHDDにフォルダ作ることになるから、PHPからシェル
コマンド叩くとかの処理がいる。手動であらかじめ作っといて、空きがないなら
登録拒否とかでもいいかもだけど。。
・メールボックス作成はやったことないんでよくわからん。
コマンドラインでそういう処理ができるメールサーバはありそうだから、やっぱり
PHPから実行することになるかな。これも手動であらかじめ、ってできるかもだけど。
・Webサーバの知識はWebアプリ作る以上当たり前。
その機能を実装するだけなら通り一遍の知識でも動くと思うけど、
サーバスペース貸与サービスってレンタルサーバでできるのかな?
できないなら自分でサーバたてて運用することになるんで結構大変。
特にメールサーバは下手に立てるとWebサーバ以上に迷惑をかけることになるので。
知り合いがそういうサービス個人でやってたけど、自宅にサーバ
置いてたしなあ。
136:127
07/12/22 05:00:56
自己解決しました
一旦外で実行してから読み込めばいいんですね どうもお騒がせしました
137:nobodyさん
07/12/22 05:57:17
>>133
分かりにくい質問だけどメールサーバ関係ないんだろ?
セッションやmd5でユニークな値を持つチケットを発行すれば済む話
138:133
07/12/22 06:35:51
>>135 レスありがとうございます。
実は趣味で自宅鯖立てて、最近スペース貸出を考えているのですよ。
それでそんなプログラムできればいいかな、と。
PHPって結構いろんなことできるんですね。PHPを習得するとともに、まずメル鯖立てるために固定IPゲットせねばw
135さんのレスをもとに勉強の方針立てて頑張りたいと思います。
ところでこんな時間にレス、て何者?w
139:nobodyさん
07/12/22 09:36:10
今日は休日だからな。
自鯖立てるのは結構だが、質問内容からするとかなり不安なので、
最初は審査はさんで手動登録にするとして、鯖管としての勉強をするのが第一。
踏み台になって周りに迷惑かけないようにね。
140:133
07/12/22 11:10:17
>>139
余計なお世話です。
141:nobodyさん
07/12/22 11:21:56 JyLvDbSd
classが存在するか調べる方法はありませんか?
PEARでDB.phpが読み込まれているかチェックするために
クラスチェック("DB")のようにしたいのです
142:nobodyさん
07/12/22 11:24:26 JyLvDbSd
class_existsで解決しました
143:nobodyさん
07/12/22 13:21:02 iV97cpSO
$str = "1+2+3"; というようになっているstring があったとして、
これを数式だと解釈して 1+2+3 (= 6) を返すような関数て
ありましたかね?
144:nobodyさん
07/12/22 13:21:36
>>143
eval
145:nobodyさん
07/12/22 13:36:39 iV97cpSO
>>144 ありがとう。
$str = "1+2";
echo $str. "\n";
eval("\$str2 = $str ;");
echo $str2. "\n";
解決した。
146:138
07/12/22 13:46:19
>>133
まあ鯖管やるといろいろと勉強になるし、がんばってくれ。
ただ139と同意見でもあるので、いっぺんにいろいろやろうとせずに
PHPならPHPだけって感じでやっていったほうがいいと思う。
メールサーバは半日放置すればすぐ踏み台にされるし、他のメール
サーバの管理者から文句が来たり、ISPその他から警告来ることがあるよ。
147:nobodyさん
07/12/22 15:17:14 JyLvDbSd
PEARのmimeDecodeで
$structure = Mail_mimeDecode::decode($params);
をしたときに、メールの件名・本文の文字コードを取得したいのですが、
本文はcontent-typeにありますけど、件名がありません。
どこで取得すればよいのでしょうか?
148:nobodyさん
07/12/22 15:29:17 XDbomIjm
本でもWebでもいいんですが、PHPの長い良質なソースコードないですか?
勉強したいので。。独学ですが、普通の本のソースじゃものたりなくなりました。。
よろしくお願いします。
149:nobodyさん
07/12/22 15:35:26
>>148
pear
zend framework
あたりかな
150:148
07/12/22 15:40:37 XDbomIjm
>>149
どうもありがとうございます。その2つをとりあえず見てみます。あと、思いついたんですが
洋書でいいのないですかね?あっちの方が本格的な気がして。。洋書でいいのを知っている方
教えてください。よろしくお願いします。
151:nobodyさん
07/12/22 15:49:04
シェル形式(perl形式)のコメント#って廃止予定とかあったりする?
あまり使われてないようだけど、#がスクリプトに混ざってたりしたら気持ちわるかったりするのかな
#昔書いたスクリプトで、いたるところにコメントで/* */を使ってあるのをメンテしてて、
#/* */使って問題箇所を切り分けようとしたら酷い目にあった
152:nobodyさん
07/12/22 15:50:38
>>150
「気がする」程度なら必要ない
それよりまず日本語ドキュメントを完全マスターすべし
153:nobodyさん
07/12/22 15:54:32
>>148
PHP5でクラス使ってるのが所望なら、mediaWIKIおすすめ
俺はめまいがして静かにエディタを閉じたけどw
154:nobodyさん
07/12/22 15:54:49
ユーザーが入力した式を
evalで実行してます。
(計算機のようなものです)
でもこうすると、ユーザーがたとえばファイル読み書きなんかの
命令を入れたら実行されてしまいます。
なんかいい方法はありますか?
ちなみに単純な計算機ではなく、関数など複雑な
式を入力することが出来きることが条件です。
155:nobodyさん
07/12/22 15:55:21
pearなんてあんま良質とは思えないのも多々ある訳だが
動物本でも読んだら?
156:nobodyさん
07/12/22 16:00:36
pearといえばNET_IP_V4←うろおぼえ
で、どんなIPアドレスでもネットワーク内ある(trueになる)という、
物凄いバグありバージョンがあったな
設置だけして使ってはいなかったけど
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4053日前に更新/264 KB
担当:undef