【PHP】下らねぇ質問はID出して書き込みやがれ 74

このエントリーをはてなブックマークに追加
1nobodyさん
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 73
http://pc11.2ch.net/test/read.cgi/php/1220440493/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
2nobodyさん:2008/09/20(土) 20:23:57 ID:???
IDだせ




 
3nobodyさん:2008/09/20(土) 20:24:13 ID:???
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 72
http://pc11.2ch.net/test/read.cgi/php/1218855685/
【PHP】下らねぇ質問はここに書き込みやがれ 71
http://pc11.2ch.net/test/read.cgi/php/1216291372/
【PHP】下らねぇ質問はここに書き込みやがれ 70
http://pc11.2ch.net/test/read.cgi/php/1214356448/
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
【PHP】下らねぇ質問はここに書き込みやがれ 68
http://pc11.2ch.net/test/read.cgi/php/1209822736/
【PHP】下らねぇ質問はここに書き込みやがれ 67
http://pc11.2ch.net/test/read.cgi/php/1207863515/
【PHP】下らねぇ質問はここに書き込みやがれ 66
http://pc11.2ch.net/test/read.cgi/php/1205655807/
【PHP】下らねぇ質問はここに書き込みやがれ 65
http://pc11.2ch.net/test/read.cgi/php/1203854597/
【PHP】下らねぇ質問はここに書き込みやがれ 64
http://pc11.2ch.net/test/read.cgi/php/1202536271/
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1201425479/
【PHP】下らねぇ質問はここに書き込みやがれ 62
http://pc11.2ch.net/test/read.cgi/php/1199956159/
4nobodyさん:2008/09/20(土) 20:25:00 ID:???
関連リンク
■本家マニュアル   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/
5nobodyさん:2008/09/20(土) 20:25:48 ID:???
【簡易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プログラムとして実行された結果になる。
6nobodyさん:2008/09/20(土) 20:26:35 ID:???
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に保存?
 → 好きにしてください
7nobodyさん:2008/09/20(土) 20:27:38 ID:???
>>1
ぬるぽ
8nobodyさん:2008/09/20(土) 20:27:47 ID:???
ついに、宗派分裂か。これも時代の趨勢か・・・・。
9nobodyさん:2008/09/20(土) 20:29:00 ID:???
次スレあたりで戻せたら戻したいが
ほんと夏も終わったというのにくだらねえな
10nobodyさん:2008/09/20(土) 20:30:48 ID:???
>>1
GJ!!
11nobodyさん:2008/09/20(土) 20:32:23 ID:???
>>1

        _____
.       __`ヽ   ,トr,' ´ ,.へ   ,≡三< ̄ ̄ ̄>
.      ,イ,ィ'⌒"゙f''ト、!ヽ, ィ゙ ./       .≡ ̄>/
       バ, k,ゝ└ト、└ ''゙ ,ス     ≡三/ /
      j、 ` ーク'ー-‐ぅ7',´ ,ノ      ≡/  <___/|
     .f`'`ー-R,,__   `'<,グ.     ≡三|______/
      |    、  `' .、  
        ',  .  ',__    ゙Y
       ',    | ',   .|   こ、これは>>1乙じゃなくてソニックブームなんだから
    ,r''゙~    〉 . い  |   変な勘違いしないでよね!
  ,rァ弋   _,ァ-‐'゙  `'i"~i!
  ぃ_f_⌒"´.        ,ト、入_
  `'.ー┘.        └┴‐‐`'
12nobodyさん:2008/09/20(土) 20:33:51 ID:???
いままでの使い方に拘るのはどうせ少数がぎゃーぎゃーいってんだからこれでいい
>>1
13nobodyさん:2008/09/20(土) 20:35:02 ID:???
古参スレだがスレタイから強制的なイメージを受けるから
質問者が果たしてくるかどうかだねー
過疎りそうで心理的反応が楽しみだわ
14nobodyさん:2008/09/20(土) 20:52:00 ID:???
スレタイ勝手に変えんなボケ
15nobodyさん:2008/09/20(土) 21:15:38 ID:2GZKwOcP
スレタイ変えるなクソ野郎
16nobodyさん:2008/09/20(土) 21:30:37 ID:???
どう考えても、初心者が見たら向こうのスレを選ぶな。
こっちはコワそう。
だいたい「IDって?」てのが初心者だし。
17nobodyさん:2008/09/20(土) 21:35:10 ID:???
>>16
そりゃ2ch初心者だろ
こんなとこきてる以上普段から2ch使ってるやつ
もちろんIDのこともしってる
その証拠に前スレまではsageてるやつのほうが多かったからな
18nobodyさん:2008/09/20(土) 21:38:39 ID:???
とりあえず下らないID争いを真に受けた1がすべて悪いと言うことで
次スレでスレタイを戻すってのでいいとおも
19nobodyさん:2008/09/20(土) 21:40:14 ID:???
ぐだぐだいうなら立つ前にいえよ
ろくな意見も言わずにたってからいうなボケ
20nobodyさん:2008/09/20(土) 21:42:51 ID:???
IDにこだわる人へ
言うとおりスレタイは変えたのだからもう荒らさないでください。
21nobodyさん:2008/09/20(土) 21:43:26 ID:???
スンマセン
22nobodyさん:2008/09/20(土) 22:03:26 ID:???
ちょっとご無沙汰してたらスレタイ変わってるね

前スレ残ってたので見てみたけど、スレタイは別に変える必要なかったんじゃない?
ID出す出さないってのは相手にしなきゃいい話なのにねぇ・・・
23nobodyさん:2008/09/20(土) 22:05:55 ID:???
>>22
あんな調子で数スレごとに同じことが繰り返されてきたから
いっそのこともうかえちまえっていう意見が多かった(中身何人いるか自演かはわからないが)
24nobodyさん:2008/09/20(土) 22:21:55 ID:???
お互い自演し合っていたからプラスマイナス0だよ
25nobodyさん:2008/09/20(土) 22:42:01 ID:???
別に間違ってないからいいんじゃね?>スレタイ
ID無しスレに人が移るならIDルールがそもそもの間違いだったって話さ
26nobodyさん:2008/09/20(土) 22:48:34 ID:???
超初心者用スレが最後まで残るという展開ですね。わかります。
27nobodyさん:2008/09/20(土) 23:07:03 ID:???
とりあえずそろそろ雑談はやめようや
あとは質問をまつのみ
盛り上げのための自演質問もいらないからな
28nobodyさん:2008/09/20(土) 23:37:06 ID:???
ぬるぽっぽ
29nobodyさん:2008/09/20(土) 23:48:27 ID:???
>>28
  ∧_∧
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /
30nobodyさん:2008/09/21(日) 00:20:08 ID:???
ま、スレはどうなろうと、
「栄光のPHPは不滅です!」
31nobodyさん:2008/09/21(日) 01:58:24 ID:???
バカが寝た時間はスレが平穏になるからすぐわかるなw
32nobodyさん:2008/09/21(日) 02:03:20 ID:???
>>31
うむそうだな、だから早く寝ろ
33nobodyさん:2008/09/21(日) 02:06:57 ID:???
>>32
自己紹介乙
34nobodyさん:2008/09/21(日) 02:11:36 ID:???
どこかどう自己紹介なんだ
35nobodyさん:2008/09/21(日) 02:13:57 ID:???
>>34
人とコミュニケーションとらないから話のノリってものを読めないのですね、わかります
36nobodyさん:2008/09/21(日) 02:36:02 ID:???
>>35
理由まで分かるとは
自己紹介乙
37nobodyさん:2008/09/21(日) 02:42:34 ID:???
とりあえずお前ら寝ろ
そしたら頭も少しは冷えるだろう
38nobodyさん:2008/09/21(日) 02:50:30 ID:3CHNeolW
PHPの勉強はじめてみたいんだけど、
まず、何と何と何と何とをダウンロードして
何と何と何と何とをインストールすればいいの?
39nobodyさん:2008/09/21(日) 03:25:14 ID:???
XAMPPをインストールすればイナフ
40nobodyさん:2008/09/21(日) 03:26:23 ID:3CHNeolW
余計なものは入れたくないの。
PHPだけ入れたいので、
その方向でアドバイスお願いします
41nobodyさん:2008/09/21(日) 03:29:00 ID:???
最低限ならApacheとPHPでおk
まあDBが付いてくるXAMPP Liteでもいいと思うよ
42nobodyさん:2008/09/21(日) 04:04:25 ID:???
勉強するだけなら好きにしろという感じだが
何か作りたいものがあるならそれによって必要なものも変わってくるだろ
43nobodyさん:2008/09/21(日) 04:50:31 ID:3CHNeolW
アパッチはもう入れてあるから、
PHPだけいれる方法教えてよ
44nobodyさん:2008/09/21(日) 04:51:11 ID:3CHNeolW
ちなみにアパッチいれてあっても
ルーター経由であればIPが隠蔽されてるから
外部からアクセスできないですよね。

わざわざルーターでポートフォーワーディングとか
設定してないかぎり。
45nobodyさん:2008/09/21(日) 05:02:25 ID:???
ずいぶん偉そうなガキだな
ママのおっぱい吸って眠れ
46nobodyさん:2008/09/21(日) 05:23:21 ID:???
せっかくスレ分けたんだし>>1読んでないのは相手にするな

・ 質問者として、態度をわきまえること。
47nobodyさん:2008/09/21(日) 06:01:43 ID:???
>>43
ttp://www.php.net/downloads.php から好きなのをどうぞ。
PHP 5.2.6 installer とか
48nobodyさん:2008/09/21(日) 07:47:32 ID:3CHNeolW
インストールは終わったはずなんだが、
動いているのかいないのか、
よくわからんな。
49nobodyさん:2008/09/21(日) 07:59:50 ID:???
phpってサービスが動くわけじゃないからな
50nobodyさん:2008/09/21(日) 08:30:10 ID:3CHNeolW
PHPが動いた!PHPが動いた!PHPが動いた!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=Shift_Jis">
<title>PHP入門</title>
</head>

<body>
<p>今日は、<?php echo date("Y/m/d"); ?> です。</p>
</body>
</html>

↑これをinfo.phpという名前で保存して、そのファイルを
C:\abcde\info.php
に保存して、ブラウザで
http://localhost/info.php
にアクセスしたら、
今日は、2008/09/21 です。
と表示された!
51nobodyさん:2008/09/21(日) 08:31:58 ID:???
日記はチラシの裏へどうぞ
52nobodyさん:2008/09/21(日) 10:44:45 ID:3CHNeolW
エディタは何を使えばいいの?
53nobodyさん:2008/09/21(日) 10:54:19 ID:???
>>52
何でもいい、という位に制限はほぼ無い。
文字コードを意識できる程度かな。
使い慣れたものを使えばおk。
54nobodyさん:2008/09/21(日) 11:02:56 ID:3CHNeolW
いやいや、最高のものを推薦してくださいよ
現時点でのシェアナンバーワン、っていったほうがいいかな。

FTPソフトだったら、FFFTP、
メールソフトだったらベッキー、
みたいな。定番のなにかがあるでしょたぶん。
ブラウザだったらファイヤーフォックスみたいな。
55nobodyさん:2008/09/21(日) 11:07:47 ID:???
メモ帳でいいよ
56nobodyさん:2008/09/21(日) 11:16:38 ID:???
メモ帳だな
普及率はトップでしょ
57nobodyさん:2008/09/21(日) 11:20:31 ID:???
メモ帳に決まっているだろ。他に何か紹介する奴がいたら、宣伝乙といってやるよ。
58nobodyさん:2008/09/21(日) 11:32:32 ID:???
なぜかwindowsのphpを5.2.6にしたらpdoでpgsqlが使えなくなった
could not find driverになる
なぜだ
59nobodyさん:2008/09/21(日) 11:38:50 ID:???
pdoのpgsqlは、まだphp5.2.6に対応していないよ。
60nobodyさん:2008/09/21(日) 11:43:15 ID:???
あら、そうなの…
とりあえず戻すね
トン
61nobodyさん:2008/09/21(日) 12:04:41 ID:???
fireFTPお勧め
62nobodyさん:2008/09/21(日) 12:12:44 ID:i3pcIM3p
http://*******.php?id=***@***.***

<?php
$id = $_GET['id'];
?>
で取得した変数に英数字と@と.以外が入っていた場合エラー返したいんだけど、どうすればよいですか?
63nobodyさん:2008/09/21(日) 12:22:53 ID:???
>>58
5.2.6は普通にpostgreもダメなはず
64nobodyさん:2008/09/21(日) 12:29:07 ID:???
>>62
正規表現
65nobodyさん:2008/09/21(日) 12:48:15 ID:i3pcIM3p
>>64 トンクス
見つかった。ありがとう。
66nobodyさん:2008/09/21(日) 13:40:09 ID:amudP2A4
お前等ネットの情報鵜呑みにしてんじゃねーぞ

preg_matchの方がeregより速いと言われるが
ereg と preg_match を 10万回ループさせた結果

ereg
0.2693秒
preg_match
0.3628秒


処理した文字列
$str = "piece1 piece2 piece3 piece4 piece5 piece6";
これを[a-z]+でTRUEかFALSEかを判定
もちろんprintはしない

CPUはathlon X2 BE
winXP

今他の関数でも調べてるからお前等も暇ならベンチ報告よろしく

ちなみにループさせてる間、CPU使用率が20%になった
67nobodyさん:2008/09/21(日) 13:44:11 ID:xzC3gd0K
PHPの処理速度を上げたいんですが
サーバー自体の物理的処理速度をiniファイル?とかでアップすることは可能ですか?
ローカルで専用PCで使ってるのでもっとPC自体に負荷かけても問題ないです。
メモリの割り当て増やす以外にいじれるところはあるのでしょうか?
68nobodyさん:2008/09/21(日) 13:53:19 ID:???
>>67
httpd.conf
69nobodyさん:2008/09/21(日) 13:54:04 ID:???
>>66
もっと複雑な正規表現にしてから計測しろよ
70nobodyさん:2008/09/21(日) 14:01:09 ID:amudP2A4
1000回ループ

file()と
fopen、fgetsで
半角40文字が書いたテキストを読み込んでみた


file()
0.062秒
fopen、fgets
0.0511秒

次はデスクトップにあった4892バイトテキスト

file()
0.1626秒
fopen、fgets(複数行なのでwhile使用)
0.3258秒

なるほど〜
一行ならfgetsで
複数ならfileか。

なんか調べてほしい関数ある?
今までforでやってたからforeachでもやってみよう
71nobodyさん:2008/09/21(日) 14:01:34 ID:???
blogでやれ
72nobodyさん:2008/09/21(日) 14:02:01 ID:???
ネットの情報は信じない
73nobodyさん:2008/09/21(日) 14:22:55 ID:amudP2A4
今10万回ループの中にループ入れてみたらアパッチは動いてるのに
IEが完全に立ち上がらなくなってPC再起動させたわ


>>69
分かった。次はマルチバイト文字でやってみる
74nobodyさん:2008/09/21(日) 14:36:11 ID:???
どうでもいいけど、そのループ調査に使った
ソースコードの内容がわからないと出てきた結果は意味が無いよ
75nobodyさん:2008/09/21(日) 14:48:52 ID:???
クライアントと鯖一緒の状態でベンチマークとってどうすんだ
76nobodyさん:2008/09/21(日) 14:49:59 ID:???
アホだなこいつ
77nobodyさん:2008/09/21(日) 14:51:38 ID:amudP2A4
mb_ereg_replaceと
str_replaceで
「PHPの質問はちゃんとID出して質問しろ!」という文字列の
「ちゃんとID」を「しっかりchinko」に変換してみた

各1000回ループ
mb_ereg_replace
0.0217秒
str_replace
0.0038秒


eregと
preg_matchで
文字列をメアドかどうか判定
^[]+@[]+$ ←こんな感じね

ereg
0.0066
preg_match
0.0049

少し複雑だとpreg_matchの方が速いな
78たま ◆ExGQrDul2E :2008/09/21(日) 15:00:54 ID:Q+K5bZwX
PHP スレッド式掲示板を作成しています。
スレッド一覧を取得するlist.txtには
スレッドno<>スレタイ<>時間
がかかれていて、スレッドログファイルに書かれるたびに更新します。
array_unshiftで、上からログを追加して、古いスレッド情報を削除しようと思うんですが、どうしたら、古いスレッド情報が
取得できるのでしょうか?
79nobodyさん:2008/09/21(日) 15:02:05 ID:???
一番下のやつ消せば?
80nobodyさん:2008/09/21(日) 15:11:37 ID:???
>>78
unset end($array)
81nobodyさん:2008/09/21(日) 15:14:25 ID:amudP2A4
>>78
100個スレッドがあり101個目が入ったら、一番古いのは配列の一番最後になるから
ループで書き込む時に
countして100でbreakすれば古いのは書き込まれず終了するよ
82nobodyさん:2008/09/21(日) 15:24:46 ID:???
スレ伸び始めてると思ったら日記ばっかじゃねーかw
83たま ◆ExGQrDul2E :2008/09/21(日) 15:26:57 ID:Q+K5bZwX
回答ありがとうございます。

たとえば、./log/2.dat
に書き込むとして、スレッドキーは
2とします。
2.datには、うまく書き込みが可能でした。

./list.txt
には
1<>テストスレ1<>9/10 11:12
3<>テストすれ3<>9/10 11:12
2<>テストすれ2<>9/10 11:10

こうなっててとします。
array_unshiftで一番上に持って来るので
2<>テストすれ2<>9/10 11:10
1<>テストスレ1<>9/10 11:12
3<>テストすれ3<>9/10 11:12
2<>テストすれ2<>9/10 11:10

書き込んだらこうなります。
古いのは、一番上以外で、ナンバーが2なのを探せばいいわけですから、
一番下にありました、
ここで、一番下を取得して、
array_splise($log,$key,1);
でいいのですが、この$keyは何にあたるのでしょうか?


84nobodyさん:2008/09/21(日) 15:42:18 ID:???
>>83
最後を削除したいだけなら
array_pop
要素の一番としたいなら値チェックしてくしかないんじゃ・・・
85たま ◆ExGQrDul2E :2008/09/21(日) 15:45:51 ID:Q+K5bZwX
このようなことも考えてみました。

$log = file("./list.txt");
foreach ($log as $value){
list($no,$title,$time) = explode('<>', $value);
array_unique($log);
echo "NO:".$no."<br>"."title:".$title."<hr>";
}

list.txtには
1<>テストすれ1<>9/10 11:10
3<>テストすれ3<>9/10 11:15
1<>テストすれ1<>9/10 11:10
2<>テストすれ2<>9/10 11:13
このように同じ要素
1<>テストすれ1<>9/10 11:10
があったので
array_unique($log);
で消そうと思いましたが、だめでした。
なぜでしょうか?

86nobodyさん:2008/09/21(日) 15:46:08 ID:amudP2A4
$keyはその消したいやつがある配列の番号count。

2番目のスレを上げで書き込む前に
ループで
if(スレ番==2){
array_splice(スレの配列、$i、1、"")//配列をループさせ、スレ番号が2の行を見つけたら、その行を空にする
}

で、新しい2をunshftで書き込む
87nobodyさん:2008/09/21(日) 15:46:42 ID:UFHYPm4K
質問させてください。
以下のようにクラスセパレータを含むようなクラス変数を表示させたいのですが
うまくいきません(どうも変数が通っていない)
どのようにすれば表示できるか教えてください。

<?php
$var = "no->hoge_id";

$str = '<?xml version="1.0"?><item>'.
'<no><hoge>123</hoge>'.
'<huga>456</huga></no>'.
'</item>';
$xml = simplexml_load_string($str);

// 出力無し
echo $xml->{$var};
?>
8887:2008/09/21(日) 15:47:37 ID:UFHYPm4K
すいません、一部間違えました。
× $var = "no->hoge_id";
○ $var = "no->hoge";
89nobodyさん:2008/09/21(日) 15:58:15 ID:???
たまちゃん応援あげ
90nobodyさん:2008/09/21(日) 16:09:11 ID:???
>>88
二つに分けりゃいいじゃん
91nobodyさん:2008/09/21(日) 16:16:41 ID:???
>>たまちゃん

アレイユニークをループの中に入れてもしょうがないので
ループの前に
$配列 = アレイunique($配列)
にしてループで表示すればいいよ

ただそれだとログの中は同名のスレだらけになるから
書き込む時にunique使って、表示する時は通常通りがいいよ

ただ、uniqueでやると改行文字もuniqueの判定基準になるから
文字コード変えると二つ表示になっちゃうよ

やっぱり古いのは""で置き換えた方がいい


あとほかの方法では
書き込むときのループで
if($i==0 or スレ番!=2){
write
}
とすれば一番新しく追加されたスレ番2以外の2は書き込まれないよ
92nobodyさん:2008/09/21(日) 16:17:50 ID:amudP2A4
ID出し忘れた
というかもうどうでもいい

ひたすらベンチするわ
93nobodyさん:2008/09/21(日) 16:20:16 ID:???
>>92
いちいち報告しなくていいからあとはチラシの裏でやってくれな
94nobodyさん:2008/09/21(日) 16:34:17 ID:???
>>92
クソの役にも立たないベンチはどうでもいいからブログにでも書いといてくれ
9590:2008/09/21(日) 16:36:13 ID:UFHYPm4K
返信ありがとうございます。
後出しぽくて申し訳ないですが本当はもっと大きなXMLを読み込んでいて、
階層の深さが特定できない状態という前提で考えているので
$var = "no->hoge->foo->bar"; のように変数名も受け付けるように読み込みたいのです。

splitで分割して、それをセパレータでつなげるというのは挑戦してみたんですが
どうにもうまくできなくて…。おわかりの方はいらっしゃいますでしょうか?
9688:2008/09/21(日) 16:37:12 ID:UFHYPm4K
↑すいません、また間違えてしまいました。
90ではなく88
>> 90さんへの返信でした
97nobodyさん:2008/09/21(日) 16:38:23 ID:???
階層の深さが特定できないなら余計に文字列でなく要素ごとに管理したほうがいいと思うが
splitでもいいんじゃない?
9888:2008/09/21(日) 16:55:26 ID:UFHYPm4K
>>97さん
XMLの要素名を配列の要素に入れて、それをくっつけて参照できる形に組み立てる感じでしょうか。
僕が知らないだけなのかもしれないんですが、ちょっとその方法がわからないんです。

ちなみにsplitで最初に書いたコードはこんな感じです。

<?php

// XML読み込みは省略

$classvars = split("->", $var);
$num = count($classvars);

for ($i=0; $i<$num; $i++){
if (($i+1) != $num){
// ここでエラーが出る
$class .= $classvars[$i]->;
} else{
$class .= $classvars[$i];
}
}

echo $xml->{$class};
?>
99nobodyさん:2008/09/21(日) 17:06:01 ID:???
たまちゃん応援あげ
100nobodyさん:2008/09/21(日) 17:11:30 ID:???
<?php
$str = '<?xml version="1.0"?><item>'.
'<no><hoge>123</hoge>'.
'<huga>456</huga></no>'.
'</item>';
$xml = simplexml_load_string($str);
$var = "{$xml->no->hoge}";
echo $$var;

これじゃだめなん?要素ごとに分けないやり方の方が良いのなら。
101nobodyさん:2008/09/21(日) 17:16:43 ID:???
すまん勘違いだ。
123を表示できればいいのに$123とかよく分からないことになってる。

よく考えてみたら結局そのまま $xml->no->hoge でいいような気もするんだが
>>87みたいに可変変数使う理由って何なの?
10288:2008/09/21(日) 17:53:49 ID:UFHYPm4K
>>101さん
function showElementValue($node){

// 省略
echo $xml->{$node};

}

実際にはこのようにメソッドとして呼び出しているので表示したいノードを引数にして書きたいのと、
$xml-> というような共通項は関数内で処理できたらなと思ったのが理由です。
冗長になると思ってやめたんですが、意図通りにちゃんとメソッドとして例示した方がよかったですね。
103nobodyさん:2008/09/21(日) 18:13:41 ID:???
オブジェクトオペレータ込みだと上手いこと展開してくれないんだね。
PHPなんだからしてくれてもいいのにね。

やっぱ要素ごとに渡してくっつける方法か、
関数に分けて入れない方法を検討したほうがいいかもね。
省略中でどんな処理してるか分からんから何とも言えないけど。
104nobodyさん:2008/09/21(日) 18:19:16 ID:???
汚いけどevalで出来るよ
105nobodyさん:2008/09/21(日) 18:21:35 ID:???
なにがしたいのかさっぱりわからん
106nobodyさん:2008/09/21(日) 18:43:54 ID:???
なんか…



必死だなw
107nobodyさん:2008/09/21(日) 18:58:52 ID:???
>>106
だまれっ!下僕の分際でいきがるな!!!!!
108nobodyさん:2008/09/21(日) 19:00:01 ID:kQIo17gb
Linuxです。
PHPからmail()とかでメール送りたいのですが、メール鯖をインストールするのも面倒なので、
プロバイダのサーバー使えるようにできないもんですかね。
Windowsではphp.iniの設定でなんとかなるみたいですが・・
10988:2008/09/21(日) 19:05:46 ID:UFHYPm4K
ありがとうございました。
結局、以下のように階層を9に絞って手動処理してみました。
>>104さんの仰るようにevalも試していますが、いかんせん
始めて扱う関数でうまくいきません。よければ教えてください。

function showElementValue($node){

$path = parseNode($node);

echo $path;

}

function parseNode($node){

$cv = split("->", $node);
$count = count($cv);

// オブジェクトオペレータの展開がうまくいかないので、すごく冗長な手動処理
switch ($count){
case "1":
return $xml->$cv[0];
case "2":
return $xml->$cv[0]->$cv[1];
// 以下同じように続く
}

}
110nobodyさん:2008/09/21(日) 19:10:46 ID:???
>>108
phpで直接ISPのメル鯖にsmtp投げればいいだけの話と違うん?
111nobodyさん:2008/09/21(日) 19:17:57 ID:???
>>107
下僕、ゲッ、僕σ(´Д`)?

(´・ω:;.:...
112nobodyさん:2008/09/21(日) 19:22:08 ID:???
11388:2008/09/21(日) 19:27:37 ID:UFHYPm4K
以下でなんとかできましたので、ご報告しておきます。
ありがとうございました。

eval('$node = $xml->'. $node .';');
114nobodyさん:2008/09/21(日) 19:32:40 ID:???
ちょw
115nobodyさん:2008/09/21(日) 19:35:44 ID:???

showElementValue($xml->no->hoge);

function showElementValue($node){
// 省略
echo $node;
}

なんで、これじゃだめなん?
116nobodyさん:2008/09/21(日) 19:58:39 ID:???
117nobodyさん:2008/09/21(日) 21:47:12 ID:???
>>108
ライブラリでもあると思うが
118nobodyさん:2008/09/21(日) 21:52:10 ID:EC1BuyjV
レンタルサーバでPHPをCGIとして利用したい場合、
#!/usr/local/bin/php
みたいに1行目に書く必要がありますが、
このパスがわかりません。
phpinfo();で出力した情報のどこを見ればよろしいのでしょうか?
前提としてその鯖ではPHPをCGIとして動かせるということだけはわかってます。
鯖管に聞くのが一番早いのですが、後学のために教えてください。
119nobodyさん:2008/09/21(日) 21:53:58 ID:???
仕様に載ってる
120118:2008/09/21(日) 22:01:48 ID:EC1BuyjV
>>119
マニュアルに書いてるということでしょうか?
仕様という項目が見当たらないのですが、
もしよかったらどこを見ればよいか教えてください。
121nobodyさん:2008/09/21(日) 22:05:35 ID:???
載ってないの?じゃ見てみるからURL教えてくれ
122118:2008/09/21(日) 22:08:35 ID:EC1BuyjV
>>121
サーバの仕様ってことですか?
一応のせてみますので、よろしくお願いします。

ttp://www.usamimi.info/~sakura/cgi-bin/puki/?WEB
123nobodyさん:2008/09/21(日) 22:12:51 ID:lcTeMIBY
124nobodyさん:2008/09/21(日) 22:13:11 ID:???
まぁ普通に考えて
/usr/local/bin/php or /usr/bin/php
ではないでしょうか
125118:2008/09/21(日) 22:20:36 ID:EC1BuyjV
レスありがとうございます。
/usr/local/bin/php
/usr/bin/php
拡張子をcgiにパーミッションを755にし、どちらも試しましたが、
テキストとして普通に表示されてしまいます。
cgi-binというフォルダがあったので、
そこに入れてみて実行してみましたが、500が返ってきました。
phpinfo();での確認が無理なようでしたら、あきらめたいと思います。
126nobodyさん:2008/09/21(日) 22:25:19 ID:???
その挙動は何かおかしいんじゃないの?
perlで書いたcgiなら動くのかい?
俺は良く知らないので詳しい人待ち。

そんなことより、ちゃんと良さげなフォーラムが用意されているのになぜ聞かないんでしょうか
127nobodyさん:2008/09/21(日) 23:11:18 ID:???
「PHPについては、SuEXEcが掛からない為、特別なパーミッション設定などはありません。」って書いてあるな
PerlだけSuExecしてるってことはないだろうから、CGI版PHPじゃないんじゃね?
仕様の表ではCGIの項目にPHP5ってあるけど誤記かもしれん(鯖缶がアホならCGIとモジュール版の違いが分からんだろうし)
128nobodyさん:2008/09/21(日) 23:45:44 ID:???
>>118
そもそもphpをcgiで動かせる鯖なのか?
129nobodyさん:2008/09/22(月) 00:32:06 ID:FSj+R9kA
"aaa","bbb","ccc"

というダブルクォーテーションで囲まれた文字があるとします。
これを文字だけ取り出して配列に入れるにはどうすればいいのでしょうか?
ファイルではないので、fgetcsvは使えませんでした。
130nobodyさん:2008/09/22(月) 00:32:09 ID:???
モジュール版だったら、.phpで。
CGI版だったら、.cgiで。

動かすってこと?
131nobodyさん:2008/09/22(月) 00:38:55 ID:???
>>129
explode
>>130
そんなのどうとでも設定できる
132nobodyさん:2008/09/22(月) 00:47:40 ID:???
>>131
揚げ足とって楽しい?
そうやってリアルでもやってて人から嫌われてるだろ?
133nobodyさん:2008/09/22(月) 00:52:06 ID:???
ど、どの辺が揚げ足・・・?
134nobodyさん:2008/09/22(月) 00:54:46 ID:???
>>130 一般的にはそうだが、>>131も正解。
ていうか鯖管に聞けよ
135nobodyさん:2008/09/22(月) 01:00:26 ID:???
136うんこ ◆otPHSLbxjY :2008/09/22(月) 01:02:48 ID:JxuRK2av
よくさぁ、掲示板とか作るけど、ログをDBに入れるかdatファイルに保存するか悩むやついるよね。
「DBの方が速そう」とか。

今日(というか昨日)ベンチしまくって分かったんだけど
DBの方が遅いわ。
1000行書き込んで表示させたんだけどdatの方が速かった。

「そんなわけねーだろバカ」って思った?
なぜかって、DBだって結局取り出したあとPHPの変数に入れてPHPでループ表示させるので
違いはデータをDBから読みとるかファイルから読みとるかの違いでしかないんだよね。
で、DBだってデータ圧縮されて保存されてるわけじゃないから
HDDが読みとるデータ量はほぼ同じ。
結局速度は同じなんだよね。
でもDBはDBに接続する時に少し時間がかかってるようだ。
ということで単純にデータを取り出すだけならdatファイルがいい。
ただし、検索したり並び変えたりするのであれば
PHPのeregやソート関数を使うよりDBの方が断然速いのでDBを使おうな。
137nobodyさん:2008/09/22(月) 01:12:19 ID:???
>>136
あのさ、datファイルに保存する奴の目的って
「後からログを検索したい」だと思うぞ。

そりゃ読み込むだけならdatファイルの方が早いのは当たり前だ
138nobodyさん:2008/09/22(月) 01:13:14 ID:???
もう相手すんな
139nobodyさん:2008/09/22(月) 01:13:29 ID:???
間違えた

datファイルに保存する奴の目的って

ログを保存する奴の目的って
140nobodyさん:2008/09/22(月) 01:13:58 ID:???
どこを立て読み?
ていうか駐留しなくていいからそろそろ名無しに戻るか消えてくれないかな
スカトロマニアはこのスレにはいないので
141nobodyさん:2008/09/22(月) 01:22:51 ID:???
>>136
どこに新しい要素があるのその話
142nobodyさん:2008/09/22(月) 01:25:54 ID:???
DBスレいって書き込んで来い
盛大に笑われるからw
143nobodyさん:2008/09/22(月) 01:39:27 ID:???
>>136
普通の人はね、ファイル名とハッシュだけDBに入れてデータはファイルで持つとか
用途に応じて格納場所変えるのね。まぁ試行錯誤するのは悪くないのね。

ところで質問は?
144nobodyさん:2008/09/22(月) 01:47:51 ID:???
>>143
横から質問で申し訳ないんだけど、

>普通の人はね、ファイル名とハッシュだけDBに入れてデータはファイルで持つとか

そうなの?MTのDB構造とか見てると、ログはテーブルに全て書き込んでた
145nobodyさん:2008/09/22(月) 01:50:05 ID:???
お前は何を言ってるんだ
146nobodyさん:2008/09/22(月) 01:53:39 ID:???
>>144
用途に応じてと言う言葉が見えんのか・・・

次の質問どうぞ
147nobodyさん:2008/09/22(月) 01:55:02 ID:???
「用途に応じて」って言ったら、どの質問もそれで片づけられるなw
148nobodyさん:2008/09/22(月) 01:58:23 ID:???
いや、その片づけ方は難度高いぞ
149nobodyさん:2008/09/22(月) 02:03:02 ID:???
>>144
blogのログとかは利便性もあってDBに全部放り込むとか良くあるのね。
逆に考えるのね。何故MTは全部DBに放り込んでるのか、そう考えるのね。
そういう思考できないとSEとかPGとしては暗い未来が待ってるのね。

ぼちぼちウザいからこの文体やめるのねw
150nobodyさん:2008/09/22(月) 02:05:24 ID:???
とりあえずうんこ野郎には構ってやるな
有益な意見交換ができるどこか
こうやって口論を誘発させるレスばっかなんだから
前スレでの教訓をいい加減生かしてくれ
151nobodyさん:2008/09/22(月) 02:06:35 ID:???
>>136
さあプログラムを書く作業に戻るんだ
152nobodyさん:2008/09/22(月) 02:10:22 ID:???
>>150
うんこ自身はともかくその後のやり取りは割と有益に見えるがな
153nobodyさん:2008/09/22(月) 08:11:46 ID:???
>>140
せっかくトリつけてるんだから、NGにしとけよ。
154nobodyさん:2008/09/22(月) 08:59:46 ID:???
>>136
初心者のボクには役に立った。
でもなぜネット上では「preg_matchの方がeregより速い」という情報があるのかな。
というかマニュアルにも書いてあるし。これPHPの制作者が書いたんでしょに。
155nobodyさん:2008/09/22(月) 09:22:53 ID:???
>>154
マニュアルにあるように「多くの場合pregの方が早い」
全ての状況でeregより早いって訳じゃないんだな
156nobodyさん:2008/09/22(月) 09:23:40 ID:???
>>154
まぬあるにはどこにもpregのが方が早いとは書いて無いぞ

>注意: Perl 互換の正規表現構文を使用する preg_match()  のほうが、多くの場合 ereg() よりも速く動作します。

ここに書いてあるのは”多くの場合”だ
157nobodyさん:2008/09/22(月) 09:30:56 ID:???
なるへそ
158nobodyさん:2008/09/22(月) 09:37:39 ID:???
私はメモリの使用量や比較量のオーダを計算して客観的に見ることができるんです。
あなたたちとは違うんです。
159nobodyさん:2008/09/22(月) 09:40:12 ID:???
お前は何を言っている
160nobodyさん:2008/09/22(月) 10:01:31 ID:???
>>158
まあ最終的にはそういうことだな
161nobodyさん:2008/09/22(月) 10:07:11 ID:???
そういや初心者未満スレで
ttp://www.php.net/manual/ja/functions.arguments.php
> 注意: PHP 5以降、デフォルトで値はリファレンス渡しとなります。
これ訳が間違ってるって指摘あったぞ
162nobodyさん:2008/09/22(月) 12:08:11 ID:???
PHPとjavaScript、
どっちが難しい?
163nobodyさん:2008/09/22(月) 12:16:05 ID:???
クロスブラウザのことがあるからjavascriptじゃね?ライブラリで吸収すれば事足りるが
164nobodyさん:2008/09/22(月) 12:24:45 ID:???
ブラウザ上のクライアントサイドで間違っても「ごめんねテヘッ☆」で済むことがほとんどだが
サーバーサイドで間違うと民事補償で首が回らなくなる

セキュアに作るのが大前提の昨今ではPHPのほうが難しいと言わざるを得ない
165nobodyさん:2008/09/22(月) 12:29:36 ID:???
>> サーバーサイドで間違うと民事補償で首が回らなくなる
民事補償で首が回らなくなるようなシステムをphpで作るわけないだろw
もう少し考えて物言ったほうがいいよ。
166nobodyさん:2008/09/22(月) 12:54:53 ID:???
>>165
バカだなあ
本当にバカだなあ
167nobodyさん:2008/09/22(月) 16:23:26 ID:Ib6bzj0X
PHPでなにかエラーがあったときに、エラー内容がHTMLに出力されますが、
同じ内容をログファイルかなにかに出力させることはできますか。
Ajaxを使っていると、エラーがおきても 200 OK でかえってくるので、
わかりにくいです。
168nobodyさん:2008/09/22(月) 16:37:37 ID:???
log_errors
169たまちゃん ◆ExGQrDul2E :2008/09/22(月) 22:32:32 ID:igNMx8gy
先日はお世話になりました
o(・◇・)o

おかげさまで、成功いたしました。

今回は、ユーザーエージェンとから、ブラウザ名を取得する配列を作ろうと思います。

UAにMSIEが含んでいたらIE
Sleipnir/が含んでいたらSleipnir

みたいに、たくさんのブラウザ情報を取得したいです。教えてください。
170たまちゃん ◆ExGQrDul2E :2008/09/22(月) 22:33:38 ID:igNMx8gy
教えてくださいというのは、ブラウザ情報です。

preg_matchで、マッチさせたいと思います。

よろしくお願いします
171nobodyさん:2008/09/22(月) 22:47:03 ID:???
何が分からんの?
172nobodyさん:2008/09/22(月) 22:52:54 ID:???
>教えてくださいというのは、ブラウザ情報です。

全ブラウザのユーザーエージェントを教えろと言っているか?
だったらスレ違いだヴォケ
173たまちゃん ◆ExGQrDul2E :2008/09/22(月) 23:32:56 ID:igNMx8gy
すべてではないです。

有名なブラウザを5〜8個くらいお願いしたいです。
174nobodyさん:2008/09/22(月) 23:42:09 ID:???
なんのために?
書き出すJavaScriptの分岐でもするのかな
175nobodyさん:2008/09/22(月) 23:50:57 ID:???
>>173
訪問者のUA記録してそっから上位のブラウザしぼって調べればいいのでは?
176nobodyさん:2008/09/23(火) 00:09:15 ID:???
>>174
XHTMLとか使うんだと思う
あれはIEは読めない
177nobodyさん:2008/09/23(火) 00:40:53 ID:???
>>173
とりあえず「ユーザーエージェント 一覧」でググれ
php関係ねーよその質問
178nobodyさん:2008/09/23(火) 06:12:56 ID:pjs6yXW6
たまちゃん応援あげ
179nobodyさん:2008/09/23(火) 06:35:46 ID:NJoiFrJ7
PHPってCGIじゃないから
パーミッションの勉強はしなくていいの?
180nobodyさん:2008/09/23(火) 07:15:24 ID:???
>>179
ディレクトリもファイルも全部に777にしとけばそれ以上気にする必要はない
181nobodyさん:2008/09/23(火) 08:47:20 ID:???
>>179
PHPだってCGIだ
182nobodyさん:2008/09/23(火) 09:18:57 ID:???
>>179
「PHP CGI版 モジュール版」でググってこい
183nobodyさん:2008/09/23(火) 10:25:58 ID:???
>>181
その回答には疑問を呈さざるを得ない
184nobodyさん:2008/09/23(火) 11:47:07 ID:EW2yGFvW
【OS名】WindowsXP
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
PHPを使ってWEBアプリのファイルマネージャを
作成しようと思っていますが、
ローカル側のファイル一覧の取得及び
ファイル操作のやり方がわかりません
くだらない質問ですみませんが
ご教示ください
185nobodyさん:2008/09/23(火) 12:03:36 ID:???
>>184
まあ基本的にはCGIとかではローカルデータの取得はできません
(できたらページにアクセスしただけでじゃんじゃんファイルがアップロードされて困る)

プラウザ上でローカルディスクをいじれるものを導入してください
IEとActiveXコンポーネントが定番なのかな
186nobodyさん:2008/09/23(火) 12:06:53 ID:EW2yGFvW
>>185
なるほど
ローカル側にはなるべくアプリを入れないで方法を
考えたかったんですが、
こればかりはしょうがなさそうですね・・・
187nobodyさん:2008/09/23(火) 12:49:56 ID:???
しかしなんだな。184の日本語を理解して、よくぞ185のような適切なアドバイスが
できるもんだな。オレには何の相談か検討がつかなかったが。
188nobodyさん:2008/09/23(火) 14:14:19 ID:???
>>185
できるよ普通に
189nobodyさん:2008/09/23(火) 14:32:34 ID:???
いやいやちょっとまて。
自分のパソコンの中で
アパッチを動かして
localhostでやりたい、という
意味だったのかもしれんぞ。

それだったらPHPで可能では?
190nobodyさん:2008/09/23(火) 14:32:52 ID:???
>>188
できねーよ
絶対に、ユーザーが明示的に単一データをsubmitする必要がある(それは意図ではあるまい)
これができるならアップロードデータの一時保持問題で世界中のWebプログラマが困ったりせんわい

CGIからローカルユーザーのデータやディレクトリ構成を読み込めるなら
それはWebブラウザのセキュリティバグなので報告しろ
191nobodyさん:2008/09/23(火) 14:34:45 ID:???
>>189
そういうのはローカルとは言わん
2000歩くらい譲ってローカルホスト略してローカルだったとしても

というか>>186みる限り普通にクライアント側のディスクいじりたいんだろ
192nobodyさん:2008/09/23(火) 14:38:51 ID:???
>>184で「ローカル側の」ってあるからリモート側にCGIがあると考えるのが普通だわな。
当然CGIでは無理っつー話にはなる。(できたら怖ぇw)

まぁネットワーク越しの共有とか駆使すればそれっぽいことはできるがCGIの仕事じゃねーわな。
193nobodyさん:2008/09/23(火) 14:52:59 ID:???
javaとjavascriptを組み合わせると可能
194nobodyさん:2008/09/23(火) 14:56:53 ID:???
新しい質問

外部に公開してない、
社内限定サービスを、
携帯電話でアクセスして
ページを見たりすることは不可能?
195nobodyさん:2008/09/23(火) 15:00:49 ID:???
>>1
196nobodyさん:2008/09/23(火) 15:03:48 ID:???
>>194
>外部に公開してない

の時点でどう見ても不可能
197nobodyさん:2008/09/23(火) 15:06:02 ID:???
>>194

誘導

【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
http://pc11.2ch.net/test/read.cgi/php/1221471692/
198194:2008/09/23(火) 15:07:02 ID:???
すいません、何回も質問するためにIDは絶対だしたくないのでそちらに行きます
199nobodyさん:2008/09/23(火) 15:07:38 ID:???
でも社内パソコンだったら、200台くらい
からアクセスできて、もちろん社内ネットワーク
限定ですけど、その目の前のパソコンで動いている
画面に、手持ちの携帯からはアクセスできないと
いうのが、はがゆくて。やっぱ無理?その社内サーバーに
携帯でアクセスできれば済む話なんだけど、携帯って
絶対にドコモとかのサーバーを通さないと通信できないんだよね。

つまり

[携帯]−[社内サーバー]

これができればいいんだけど,実際は

[携帯]−[ドコモ]−[社内サーバー]
こうするしかないのかなーって。
200nobodyさん:2008/09/23(火) 15:07:59 ID:???
>>194
できるが、社内に会社の回線とは別の専用のサーバが必要
そのサーバに携帯電話でアクセスして、社内サーバのデータを取得するという流れになる
これがバレたらおおむね社内処分対象だが、可能
201nobodyさん:2008/09/23(火) 15:10:00 ID:???
>>200
3日くらいで発覚しそうだが…
ケータイからアクセスしたいですと管理者に言うほうが早いな
202nobodyさん:2008/09/23(火) 15:12:51 ID:???
>>199
無線LAN付きの携帯でも買えよ。
あとスレ違い。
203nobodyさん:2008/09/23(火) 15:14:05 ID:???
>>199
というかなんでそこまでして携帯で見たいのかがわからん
204nobodyさん:2008/09/23(火) 15:28:41 ID:???
IDなしの質問だぞ
205nobodyさん:2008/09/23(火) 15:31:02 ID:???
>>198
別に何回質問したっていいじゃない
問題なのは的を得ない質問を延々と繰り返したり
全く理解してないのに持論を展開しつつ理解したつもりで次の質問したり
明らかに自分の意思でやろうというのが感じられず
全てわからないで最初から全部他人任せな質問者
解決してでは次の質問でこれをお願いしますというのならたたかれたりしない
206nobodyさん:2008/09/23(火) 15:59:33 ID:???
>>205
偉そうに説教してくれるな
207nobodyさん:2008/09/23(火) 16:06:36 ID:???
IDなんて1日で変わるんだからどうでもいいっていうか>>194は釣りだよね
208nobodyさん:2008/09/23(火) 16:19:05 ID:???
209nobodyさん:2008/09/23(火) 16:34:10 ID:???
>>208
リモート側のファイル操作しかできないんですが・・・
210nobodyさん:2008/09/23(火) 16:38:58 ID:???
>>200
それだとドコモのネットワークを通過するじゃない。
211nobodyさん:2008/09/23(火) 16:48:42 ID:L7uUnnXk
OSX 10.5.5 での質問です。

Server version: Apache/2.2.8 (Unix)

PHP 5.2.6 (cli) (built: Jul 17 2008 23:04:49)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

がインストールされています。PHPからOracleのInstantClientを
使おうと思って作業しました。
$ sudo php go-pear.php
$ sudo ./pecl install oci8
というような処理を実行しました。その後 httpd.confとphp.iniを書き換えて、
コマンドラインで
$ php -m
すると oci8 があり、また実際にサーバーに接続して select * from dual
するスクリプトを実行して正常に処理できることが確認できました。

ですが、
$ sudo launchctl load /System/Library/LaunchDaemons/org.apache.httpd.plist
などとしてapacheを起動すると、apacheのerror_logに

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20060613/oci8.so' - (null) in Unknown on line 0

というログが残り、phpinfo()で確認してもやはりモジュールがロードされていません。
DYLD_LIBRARY_PATHなどの環境変数がうまくわたっていないのかと思い、org.apache.httpd.plistに
設定を追加して再起動後、ps -xE で httpdにその環境変数が渡された状態で実行されていることを
確認しましたが、やはり警告がでています。

このあとどのようなことを確認すべきでしょうか?
よろしくおねがいします。
212nobodyさん:2008/09/23(火) 16:59:29 ID:???
InstantClientのverは?
213nobodyさん:2008/09/23(火) 17:16:45 ID:L7uUnnXk
InstantClient 10.2.0.4 for Mac OS X (Intel x86)
のbasic, sql*plus, sdkを www.oracle.com からもらってきて入れました。
sqlplus コマンドは正常に実行できました。
phpのcliからのoci8呼び出しも正常に動いているようです。

なのに警告がでる理由がわからず手詰まりになってしまいました。

よろしくおねがいします。
214nobodyさん:2008/09/23(火) 17:21:46 ID:zv1b+5oE
>>184
要するにWAMPやLAMPでのWEBアプリで
クライアント側のファイルを操作できる
エクスプローラを作りたいって事だろ

WAMPやLAMPじゃできねぇよ!

まずは何で出来ないのか(出来てはならないのか)を
勉強しましょうね
215nobodyさん:2008/09/23(火) 17:57:22 ID:???
ローカル って言葉がちょっと分かりにくい
クライアントかサーバにすればこんな混乱は起きなかった
216nobodyさん:2008/09/23(火) 18:02:33 ID:iCMm4+DU
<?php
header("HTTP/1.0 404 Not Found");
?>

このようなページを作成したのですが、
404 Not foundのページが表示されません。
これはヘッダーを返すとブラウザが自動的に404を読み込んでページを返してくれるというものじゃないのでしょうか?
217nobodyさん:2008/09/23(火) 18:15:37 ID:???
その404のページはどこから読み込むのさ?
218nobodyさん:2008/09/23(火) 18:17:26 ID:iCMm4+DU
ErrorDocument 404 /error.html

とhtaccessにて指定しているのですが、これではダメなのでしょうか?
219nobodyさん:2008/09/23(火) 18:19:27 ID:???
>>213
oracle依存の問題っぽいからDB板に移った方がいいかもしれん
220nobodyさん:2008/09/23(火) 19:03:27 ID:L7uUnnXk
そうですか…
なんでもいいので気づいたことなどあれば教えてください。
しばらく足掻いてみます。
221nobodyさん:2008/09/23(火) 20:08:59 ID:???
>>220
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
222nobodyさん:2008/09/23(火) 20:24:44 ID:???
別にID出してるうちは問題ないような
223nobodyさん:2008/09/23(火) 20:31:53 ID:???
>>211
php.iniのextension記述コメントアウトしたらどうなる?
224たまちゃん ◆ExGQrDul2E :2008/09/23(火) 20:34:47 ID:juer5RVw

PHPで掲示板を作っています。
書き込み後に、headerでトップに飛ばすのですが、
携帯、Windows/Vista
なら、普通に大丈夫ですが、

XPのIEから書き込めば、画面が白くなり、更新ボタンを押さなければ、書き込むことができません。
VistaではできてXPではできないのはなぜでしょうか?

array_push("ログ配列",$data);
$fp =fopen(ログファイル,"w");
for($i=0;$i<count(ログファイル);$i++){
fwrite(logfile,$log[$i]);
}
@fclose($fp);

header("Location: $jump");

exit();

?>
225nobodyさん:2008/09/23(火) 20:39:08 ID:???
XPのIEって6と7どっちだよ
226たまちゃん ◆wSaCDPDEl2 :2008/09/23(火) 20:41:02 ID:juer5RVw
IE6です。

227nobodyさん:2008/09/23(火) 20:50:12 ID:L7uUnnXk
>>223
extension=oci8.so をコメントアウトしてみました。
cliは Fatal error: Call to undefined function oci_connect() が
出るようになります。
apacheの起動時には error_log の警告が消えますが、oci8 は phpinfo()
には現れません。
228nobodyさん:2008/09/23(火) 20:58:18 ID:???
おくれましたが、
>>168
ありがとうございました。
229nobodyさん:2008/09/23(火) 20:59:22 ID:???
>>227
ok。じゃあ今度はそのextension記述のoci8.soをフルパスで書いてみ。
230たまちゃん ◆ExGQrDul2E :2008/09/23(火) 21:03:39 ID:juer5RVw
IE6には、何かバグのようなもの


header();が対応していない

とかあるのですか?
231nobodyさん:2008/09/23(火) 21:05:35 ID:L7uUnnXk
ごめんなさいタイムアップなので続きはまた後日。。。

extension=/usr/lib/php/extensions/no-debug-non-zts-20060613/oci8.so
と書くという意味でしょうか?

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20060613//usr/lib/php/extensions/no-debug-non-zts-20060613/oci8.so' - (null) in Unknown on line 0
こうなりました。。。

extension_dir は現在コメントアウトしています。
extension=oci8.so と書いているときは、
extension_dirをコメントアウトするか、extension_dir=/usr/lib/php/extensions/no-debug-non-zts-20060613/
としているときに CLI が正常に動きました。

とりいそぎ報告。どうもありがとう。
232nobodyさん:2008/09/23(火) 21:09:49 ID:???
>>231
・・・本当にextension_dir無効になってるか・・・?
233nobodyさん:2008/09/23(火) 21:13:25 ID:silsv7a8
たまちゃん応援あげ
234たまちゃん ◆ExGQrDul2E :2008/09/23(火) 21:23:54 ID:juer5RVw
>>233
毎度毎度応援ありがとうございますo(*・◇・)o

感謝します。

IE6のブラウザだけ、画面が真っ白になるというのは、なぜでしょうか…


header($header);

echo "ジャンプ失敗";

exit();


exit;は使ってはいけないでしょうか…
235nobodyさん:2008/09/23(火) 21:28:16 ID:???
>>234
vistaでも何でもいいから正常に表示されてるときのhtmlを晒すかどこかにうpしろ
236nobodyさん:2008/09/23(火) 21:42:18 ID:???
>>234
1つ言えるのはPHPの問題ではない
サーバサイドの言語でブラウザ別に異なる結果が返ってくるということは
明示的にそうする意外はありえない
ブラウザの挙動がおかしいか変なhtmlはいてるとしか思えない
237nobodyさん:2008/09/23(火) 22:26:10 ID:???
Includepathで指定されてるディレクトリって
file_existsでは省略できないんだな
238たまちゃん ◆ExGQrDul2E :2008/09/23(火) 22:30:13 ID:juer5RVw
たしか、

<html>
<head>
<title>

</title>

<body>

……

で、ヘッドを閉じ忘れていたかもしれません。
問題ありますか?
239たまちゃん ◆ExGQrDul2E :2008/09/23(火) 22:37:39 ID:juer5RVw
閉じましたけど、とくに問題はないです。

IEが書き込みできないのは、困ります。
だいたいの人はIEを使ってると思うので…
240nobodyさん:2008/09/23(火) 22:38:30 ID:JwvtqXNH
■index.php
<?php
if($mode=="js") {
header("Content-Type:text/javascript");
echo <<<EOM
window.onload = test;
function test() {
for(i=0;i<5;i++) {
alert("test");
}
}
EOM;
} else {
echo <<<EOM
<html><head>
<script type="text/javascript" src="./index.php?mode=js"></script>
</head><body>...</body></html>
EOM;
}
?>


このように書いたときにスクリプトの中に<や>が入ると(※8行目)上手く動作しないのですが
何か良い改善策はないでしょうか?
241nobodyさん:2008/09/23(火) 22:38:52 ID:???
>>238
とりあえずそのHTMLが表示されていればLocationはできない

header('Location: http://example.com/');

こういう形になってる?
$headerの内容を表示してみ
242nobodyさん:2008/09/23(火) 23:05:54 ID:???
>>240
ヒアドキュメントを使わない
243 ◆pv9EB/sLdI :2008/09/23(火) 23:51:24 ID:+JSHtbhX
参考書を使って勉強しています

参考書の中で
foreach((array)$example as $key => $value)
という文が出てきたのですが、(array)の部分に関する説明が全く書いてありません


(array)を変数の前に付けるとどうなるのか
他に変数の前に(○○)と記述する場合はあるのか

この2点について教えてください
244nobodyさん:2008/09/23(火) 23:55:24 ID:???
245242 ◆pv9EB/sLdI :2008/09/24(水) 00:02:32 ID:RHQqV9in
>>244
よく読んで勉強してみます
素早い返答ありがとうございました
246nobodyさん:2008/09/24(水) 01:50:00 ID:???
require_onceで失敗したときにエラーコードを吐き出して終了させたいのですが

require_once "hoge.php" or die("エラーっす");

としてみたのですが
Failed opening required '1'
とエラーが表示されて自分で書いたエラーが出力されません。
どのようにすればエラー処理ができるのでしょうか?
247nobodyさん:2008/09/24(水) 02:55:44 ID:???
>>246
はいどうぞ
ttp://www.php.net/manual/ja/function.require.php
includeのページも読んでおけよ
248nobodyさん:2008/09/24(水) 04:18:52 ID:???
hoge.php
<?php
$nullpo = 'gatt'';
?>

***.php
<?php
$bar = include 'hoge.php';
if (!$bar) die("逝ってよし");
?>
249211:2008/09/24(水) 07:06:45 ID:0bs2J/yD
>>232
無効とはどういう状態のことでしょうか? 231での変更をもとに戻し、
$ grep "^[[:space:]]*ext" /etc/php.ini
extension=oci8.so
$
という状態です。

CLIで動作するかどうかを見ても意味ないかもしれませんが。。。
$ php ocitest.php (←自分で作ったものです)
$ php -d extension_dir="" ocitest.php
$ php -d extension_dir="/usr/lib/php/extensions/no-debug-non-zts-20060613/" ocitest.php
いずれも期待通りの動きです。

$ php -d extension_dir="./" ocitest.php
PHP Warning: PHP Startup: Unable to load dynamic library './oci8.so' - (null) in Unknown on line 0
Fatal error: Call to undefined function oci_connect() in ...
となります。
250nobodyさん:2008/09/24(水) 13:07:51 ID:???
>>249
CLIとmod_phpは別物だからいったん離れようぜ。
>>231のエラーメッセージを見る限り明らかにpathがおかしい。
251nobodyさん:2008/09/24(水) 13:49:22 ID:tcsExBCJ
PHPのRoRは
いくつあって、
名前はなんていうの?
252nobodyさん:2008/09/24(水) 14:03:57 ID:???
>>251
そこでRoRが出てくること自体・・・
フレームワークのことを言いたいのか?と予想してみる
253nobodyさん:2008/09/24(水) 14:19:47 ID:tcsExBCJ
>>252
そう
254瀬戸内みかん:2008/09/24(水) 14:30:17 ID:7nXE5EDo
PHPプログラマーとして就職したいんですけど
実務経験がほとんどありません。
独学でプログラミング歴が大体5ヶ月ぐらいです。
開発現場で働いている方はどのぐらいのレベル何でしょうか?

年齢は25歳の人間です。
255nobodyさん:2008/09/24(水) 14:34:50 ID:???
>>251
ググればいくらでも見つかるだろ
あえてここで質問している意図が見えないが・・・

phrame
Mojavi
Agavi
Ethna
Maple
CakePHP
symfony
Zend Framework

後半3つがRoRぽいヤツだな
「いくつあって」と言うが、挙げればキリがない
↑のが使えるかどうかは別に知名度の高いやつ
256nobodyさん:2008/09/24(水) 14:47:44 ID:???
>>254
5ヶ月か、頑張りどころだな

規模や受けてる仕事の内容で現場のレベルは変わるが
俺の場合は今年6年目
PHPのソース書くだけでなく、Zendのコードが読める、PECLも作れる
自社開発のフレームワークも管理してる、ってレベル
PHPに限った内容ではこんなもん、他の知識やスキルにも精通しなきゃならん段階には入ってる
257nobodyさん:2008/09/24(水) 14:54:18 ID:???
>>254
マルチ乙
258nobodyさん:2008/09/24(水) 14:57:51 ID:???
>>256
誰がお前の自己紹介なんか聞いてねーよw
こういう自己主張の強い奴は、どこに行っても嫌われるから、
こういう奴だけにはならないように、という反面教師になった。

この業界、人間的に欠落している人が多いから、
素直な性格で新しい事を修得するのに積極的な人は、
現時点での実力がなくても、将来性を買って採用してくれる企業は一杯ある。
259nobodyさん:2008/09/24(水) 15:03:08 ID:tcsExBCJ
>>255
結局どれを使えばいいのかな?
rubyだったら、RoR一択なので考える
こともないのですが。
260瀬戸内みかん:2008/09/24(水) 15:10:51 ID:7nXE5EDo
いろいろアドバイスありがとうございます。
周りにプログラマーいないんで・・・
自分の書いているコードが正しいかどうか、判断もつきません。

ネットで検索して求人内容など見ているんですが
自分では到底できそうもないことばかりです。

お勧めの参考書とかあれば教えてもらえますか?
261nobodyさん:2008/09/24(水) 15:12:10 ID:???
RailsライクなPHPフレームワークをうまく語句を変えて検索してみれ
262nobodyさん:2008/09/24(水) 15:20:05 ID:???
>>260
マルチおつかれネカマくん
263nobodyさん:2008/09/24(水) 15:20:49 ID:???
264瀬戸内みかん改めネカマくん:2008/09/24(水) 15:22:54 ID:7nXE5EDo
すまん。マルチとかよく分からんかった。
ネカマくんって呼んでもいいから、何かアドバイスをくれ。
俺はカスで糞、どうしようもない人間だ。
265瀬戸内みかん改めネカマくん:2008/09/24(水) 15:24:28 ID:7nXE5EDo
>>263
あ・り・が・と・う
266nobodyさん:2008/09/24(水) 15:28:56 ID:???
>>264
とりあえず外に出てコンビニのアルバイトあたりから始めましょう
267瀬戸内みかん改めネカマくん:2008/09/24(水) 15:30:37 ID:7nXE5EDo
>>266
ちなみにコンビニで今、アルバイトしてます。
268nobodyさん:2008/09/24(水) 15:55:21 ID:???
それでこれなら終わってる
269nobodyさん:2008/09/24(水) 20:36:43 ID:jFyd2scl
コンビニアルバイトって大変かな?
やってみたいんだけどな。
あと瀬戸内みかん改めネカマくんに
http://pc11.2ch.net/test/read.cgi/php/1219842559/103
でレスしたんで、見てみて。
よろしく
270たまちゃん ◆.9IKLOrRqU :2008/09/24(水) 20:48:20 ID:dUo0upab
2ch トリップ

を作成するスクリプトを作成しています。

スクリプト
http://www.abcoroti.com/~rent/rspace/formmail/lock/trip.php

ソース
http://www.abcoroti.com/~rent/rspace/formmail/lock/trip.txt

しかし、作成されたトリップの一部が2chトリップとは違うのはなぜでしょうか?
271たまちゃん ◆Mission/5Y :2008/09/24(水) 20:51:06 ID:dUo0upab
このトリップ

たまちゃん#B#「WCO=d

は、このようになるはずなのですが、

変なトリップになってしまいます。

試しに、
2chと比べてみてください。


しかし、

たまちゃん#tama

のトリップは、どちらとも同じです。

この、本当なら◆Mission
のトリップが◆pj.
になるのはなぜでしょうか?
272nobodyさん:2008/09/24(水) 20:59:06 ID:f8f+ks6F
たまちゃんファイト(^o^)応援あげ
273 ◆Mission/5Y :2008/09/24(水) 20:59:21 ID:???
へー
274たまちゃん ◆Mission/5Y :2008/09/24(水) 21:04:32 ID:???
てst
275nobodyさん:2008/09/24(水) 21:27:23 ID:???
ソース見てないから憶測だが
1.そもそも2chのトリップ生成方法と違う
2.トリップの生成方法はあってるが文字コードが違う
276nobodyさん:2008/09/24(水) 21:31:55 ID:VCrs+bf+
F5攻撃を違うIPで攻撃されているのですが、
これをサーバーに負荷をかけずに弾くことには、
どのような方法がいいですか?

いやゆる、DDOS攻撃だと思うんですが、
Juniper Networks NetScreen-5GT
を導入して、こういった攻撃に対抗することは可能ですか?
アドバイスお願いします。
277nobodyさん:2008/09/24(水) 21:47:18 ID:???
>>276
ものすっごいすれ違い
278たまちゃん ◆ExGQrDul2E :2008/09/24(水) 21:51:57 ID:dUo0upab
>>275

文字コードは何がよいのでしょうか?
詳細を教えてください
279nobodyさん:2008/09/24(水) 21:59:18 ID:???
2chの文字コードがShift_JISだからShift_JISなんじゃないの?
内部コードがどうなってるかは知らんが
280たまちゃん ◆ExGQrDul2E :2008/09/24(水) 22:08:30 ID:dUo0upab
>>279
つまり、ヘッダー

header();

で、Shift_JiSを指定すればよいってわけですか?
281nobodyさん:2008/09/24(水) 22:11:35 ID:???
騙り乙
282nobodyさん:2008/09/24(水) 22:28:00 ID:tcsExBCJ
最初期モックアップ作るのに、
(1)RoRと
(2)cakephpと
どっちがカンタン?
283nobodyさん:2008/09/24(水) 22:30:39 ID:???
どちらが簡単か試してあげるから初心者の俺様に使い方を教えてくれたらいいよ
284nobodyさん:2008/09/24(水) 22:31:24 ID:???
そろそろ>>1読んで消えろよ
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
285nobodyさん:2008/09/24(水) 22:33:53 ID:???
>>280
まず念のためソースをメモ張あたりにコピペしてShift_JISで保存する
htmlのヘッダをちゃんと指定してやる(>>270はwindows-1252になってる)
286nobodyさん:2008/09/25(木) 00:44:00 ID:mCTDR1SM
PHP初心者です。現在オブジェクト指向でのプログラムを勉強中なのですが、
Aクラスの中でBクラスのメソッドを使用するといった事は可能でしょうか?
287nobodyさん:2008/09/25(木) 00:47:10 ID:5FXXDUh2
可能
288nobodyさん:2008/09/25(木) 00:56:36 ID:???
>>287
なにそのやる気なさ
289nobodyさん:2008/09/25(木) 01:01:23 ID:???
じゃあどう答えろと?
ここは学校じゃねーんだよ
290nobodyさん:2008/09/25(木) 01:04:43 ID:???
>>289
タンジェントこさいん氏ね!
291nobodyさん:2008/09/25(木) 01:05:32 ID:???
>>287
ぁたし女だけど味のないレスする男に魅力を感じないのよね
292nobodyさん:2008/09/25(木) 02:16:14 ID:???
味のあるレスって例えば?
293nobodyさん:2008/09/25(木) 08:23:36 ID:???
>>292
塩!
294211:2008/09/25(木) 09:15:30 ID:sm4D2lX6
のびのびになってしまってすみません。

>>250

>>231 は、私が指摘された内容を正しく理解できてないためだと思いますが、
まったくダメなので元に戻しています。
>>211 に書いたとおりで、apacheが以下の警告を出力しますが、このパスは正しいです。
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20060613/oci8.so' - (null) in Unknown on line 0

よろしくおねがいします。。。
295nobodyさん:2008/09/25(木) 10:47:34 ID:???
まだやってんのかw
DB板行った?
296nobodyさん:2008/09/25(木) 11:12:25 ID:???
>>294
OSXでPHPを使ったことがないので適当だけど...

ダイナミックロード回りの問題と仮定して、
mod_phpと同じ環境変数で、otool -L oci8.soのライブラリが読めるか
確認してみたら? DYLD_PRELOADとかあるしね。

あとはktraceでカーネルコールを眺めてみるとかかなぁ。
別のoci8.soバイナリが見付かったら試してみるのもいいかも
297nobodyさん:2008/09/25(木) 12:12:59 ID:???
>>294
CLIで動いて、モジュール版で動かないって分かってるなら原因も直ぐに分かるもんだが・・・
実効ユーザが変わればライブラリとかアクセス権に違いが出るからソコを調べてみるべきだな

例えばApacheの実効ユーザでoracleや依存のライブラリのパスが通ってないとか
298211:2008/09/25(木) 13:08:46 ID:sm4D2lX6
>>296-297
ありがとうございます。大事な確認ができていませんでした。
$ sudo su -
# export DYLD_LIBRARY_PATH=/usr/local/instantclient_10_2
# php ocitest.php
(正常動作)
# /usr/sbin/httpd -X
(error_logに見慣れた警告メッセージ。。。)
となりました。

ktraceは入っていなかったのですが、DTraceというツールがあったので、
これでどのようなファイルを開いているか確認してみました。
(ここを参考にしました http://www.mactech.com/articles/mactech/Vol.23/23.11/ExploringLeopardwithDTrace/index.html )

php を実行すると
/usr/lib/php/extensions/no-debug-non-zts-20060613/oci8.so
/usr/local/instantclient_10_2/libclntsh.dylib.10.1
この2行が結果に現れるのですが、httpd を 実行したときには oci8.so の
行はあるものの、libclntsh.dylib.10.1の行が現れませんでした。

ちょっと進展しました。引き続き調査したいと思います。
なにかあったら教えてください。よろしくおねがいします。
299nobodyさん:2008/09/25(木) 15:18:44 ID:???
>>298
DYLD_PRELOADに、その読まれないdylibを指定するとどうなる?
ていうか、otool -L oci8.so ではどうなってるの

10.4以降、dlopen/dlerror周りが整備されてるから、
これに対応した(かもしれない)最新のPHPならなんか変わるかもよ。
運が良ければエラーメッセージがなにか出るかもね
300たまちゃん ◆ExGQrDul2E :2008/09/25(木) 23:30:12 ID:tOvqpqkP
スレのレス記事表示について。log.datには新しい要素を上に追加していっています
7<>名無し7<>よろしく
6<>名無し6<>よろしく
5<>名無し5<>よろしく
4<>名無し4<>よろしく
3<>名無し3<>よろしく
2<>名無し2<>よろしく
1<>名無し1<>よろしく
ログは、5つに区切って表示しています。
?page=0のとき
7.名無し7
6.名無し6
?page=1
5.名無し5
4.名無し4
3.名無し3
2.名無し2
1.名無し1
この状態では、表示の時、新しい記事が上に来てしまいます。しかし、表示したいのは
?page=0のとき
6.名無し6
7.名無し7
?page=1
1.名無し1
2.名無し2
3.名無し3
4.名無し4
5.名無し5
このように、ソートさせたいです。何か、うまくソートする方法はないでしょうか?
301nobodyさん:2008/09/25(木) 23:33:13 ID:???
そのページで表示するログを取ってきてからソートすれば?
なんでpage=0で2件なのかは謎だけど
302たまちゃん ◆ExGQrDul2E :2008/09/25(木) 23:50:44 ID:tOvqpqkP
間違えた(ノд<。)゜。

?page=0
で5件、

?page=1
で2件。
ログの保存方法からかえるのはいやですので、何かないでしょうか
303nobodyさん:2008/09/26(金) 00:19:02 ID:???
>>301をちゃんと読めよw
304nobodyさん:2008/09/26(金) 01:11:05 ID:1TPWkDg1
たまちゃん応援あげ
今日はがんばって答えちゃうぞっ(^o^)

ログデータ読み込み

page=0のときに表示する分のログを取る

ソート
305nobodyさん:2008/09/26(金) 04:24:31 ID:UEEhc7iP
$_ENV + $_SERVERって書いてるソースを見たのですが、
これは何をしているのですか?
306nobodyさん:2008/09/26(金) 04:31:15 ID:???
足してるんじゃ?
307たまちゃん ◆ExGQrDul2E :2008/09/26(金) 05:25:15 ID:AJ85Tj0b
>>304
ありがとうございます
o(*・◇・)o
なんかログが逆から読んで変ですが、ソートはできました。

308たまちゃん ◆ExGQrDul2E :2008/09/26(金) 05:26:28 ID:AJ85Tj0b
スレッド式掲示板のスレッドを複数で削除するにはどうしたらよいですか?
スレッド単体で削除するなら
delform.htmlには
削除スレナンバー<br>
<form action="del.php" method="POST">
<input type="text" name="del" value="">
<input type="submit" value="削除">
del.phpには
<?php
$del = $_POST['del']; //削除スレッドナンバー
$list = @file("./list.txt"); //リスト
$handle = @fopen("./list.txt", "w") or exit('ログファイルに書き込めません。');
for($i=0; $i<count($list); $i++) {
list($no,$title) = explode('<>', $list[$i]);
if($del == $no){ //もし、delが配列にあれば
array_splice($list,$i,1,"");//配列をループさせ、スレ番号が$delの行を見つけたら、その行を空にする ■レス続く■
309たまちゃん ◆ExGQrDul2E :2008/09/26(金) 05:28:09 ID:AJ85Tj0b
■続き■

}
}
for($i=0; $i<count($list); $i++) {
fwrite($handle, $list[$i]);
}
@fclose($handle);
unlink("./{$del}.cgi");
echo "1スレッド削除しました。";
?>
つづく


これで、簡単に削除して、スレッド一覧をリスト記録しているlist.txtを更新できます。

今回やりたいのは、

delform.htmlを


<form action="del.php" method="POST">
削除スレナンバー0<br>
<input type="text" name="del[]" value="">
削除スレナンバー1<br>
<input type="text" name="del[]" value="">
削除スレナンバー2<br>
<input type="text" name="del[]" value="">
<input type="submit" value="削除">

これに対応させたいです。
どのように改造したらよいか、教えてください。
310nobodyさん:2008/09/26(金) 05:32:16 ID:???
foreachかけて同じことすればいいんじゃ?
311nobodyさん:2008/09/26(金) 11:02:08 ID:QCsSeIuJ
htmlspecialcharsをすると、
URLの「index.php?id=12&page=2」の&が&に変換されてしまいます。

テキストエリア入力で複数文字列の中にURLがある場合、
htmlspecialcharsを無効としたいのですが、どうすればいいのでしょうか?
312nobodyさん:2008/09/26(金) 11:07:15 ID:???
ampに変えられると何で駄目なん?
313312:2008/09/26(金) 11:09:36 ID:QCsSeIuJ
メール内にURLが含まれる時
http://***.com/index.php?id=1amp;uid=2

と言う風になりますが、これだとuidの値が取得できないからです
314nobodyさん:2008/09/26(金) 11:32:08 ID:9c95iPZj
PHPで作業中のスクリプトの確保してるメモリ(or使用中の)の量とかって表示はできないのかな?
315nobodyさん:2008/09/26(金) 11:35:18 ID:BQfgychi
Qdmailの関数型でDoCoMoだけ[添付ファイル削除]になるんですが、
回避方法分かる方いらっしゃいませんか・・?
316nobodyさん:2008/09/26(金) 12:07:35 ID:6bG1vTrj
パッケージ名
「xampp 1.6.7」

「やろうとしたこと」
 管理画面からphpmyadminをクリックして表示

出てきたエラーメッセージ
「mysql 拡張をロードできません。PHP の設定を確認してください」

ぐぐると、
「phpinfoで、Configuration File (php.ini) Pathのパスは正しいですか?」
という書き込みを発見。
さっそく調べてみると

Configuration File (php.ini) Path C:\WINNT

Loaded Configuration File C:\Program Files\PHP\php.ini

となっている。これってOKなの?まちがってるの?
317nobodyさん:2008/09/26(金) 12:16:53 ID:???
>>314
memory_get_usage()
318nobodyさん:2008/09/26(金) 12:19:24 ID:???
>>315
docomoは無条件に添付削除、のはず
サーバにアップロードしてURLを送るようにすればいいかと
319nobodyさん:2008/09/26(金) 12:23:17 ID:???
>>316
zip版しか使ったことないが、xamppはパッケージ化されてる訳だからパスが間違ってるってわけじゃなくて
php.iniに「extension=php_mysql.dll」や「extension=php_mysqli.dll」がコメント化されたままなんじゃないか?
phpinfo()でmysqlクライアントが有効か確認汁
320nobodyさん:2008/09/26(金) 12:27:41 ID:???
$hoge = mb_convert_kana($hoge, "a");
if (ereg("^([\x01-\x2f]|[\x3a-\x40]|[\x5b-\x60]|[\x7b-\x7f])*$", $hoge)){
echo "記号入れるな";
}

という漢字で、記号が入れられたらエラーみたいな処理をしたいのですが
全角で” ’ を入れたときにうまく機能しません
たすけてくだしあ
321nobodyさん:2008/09/26(金) 12:30:56 ID:6bG1vTrj
>>319
>phpinfo()でmysqlクライアントが有効か確認汁

これはどこを見ればいいですか?
322nobodyさん:2008/09/26(金) 12:33:48 ID:6bG1vTrj
php.iniはハードディスクの中に9個入っているのですが
どれを変更すればいいですか?
323nobodyさん:2008/09/26(金) 12:39:55 ID:6bG1vTrj
http://blog.3re.jp/2008/01/php-setup.html

↑ここを見ると、
php.iniの設定

XAMPPに同梱されているxdebugを
利用できるように設定したいのですが、
XAMPPの採用する「PHP Switch」という機構によって、
設定ファイルが

\xampp\php\php.ini

ではなく、

\xampp\apache\bin\php.ini

であることがわかるまで苦労しました
-----------------------------------------
と書いてあるのですが、これを信用していいですか?
324nobodyさん:2008/09/26(金) 12:52:17 ID:6bG1vTrj
extension=php_mysql.dll
extension=php_mysqli.dll

↑この2つは行頭の;セミコロンははずされてる。

確認したファイルは
\xampp\apache\bin\php.ini
325nobodyさん:2008/09/26(金) 12:55:25 ID:6bG1vTrj
やっぱりpathの設定なんじゃないかなぁ。

Configuration File (php.ini) Path C:\WINNT
Loaded Configuration File C:\Program Files\PHP\php.ini

↑この読込先ってどうやって変更するの?
この読込先を
\xampp\apache\bin\php.ini
にしないとだめなんじゃないの?

そのやり方を教えてよ。

ちょっと教えてくれるまで
しばらくオンラインゲームやってくるから。
326nobodyさん:2008/09/26(金) 12:57:33 ID:6bG1vTrj
いや間違えた。

変更するのは
C:\xampp\apache\bin

でいいんだけども、PHP5を使う場合は、
PHP5用 --- C:\xampp\php\php.ini
これが読み込まれるように設定しないとだめだと思う。

だからそのやり方をおしえて。
327315:2008/09/26(金) 13:05:31 ID:BQfgychi
改行コードの設定を無理やり変更したらいけました。
328nobodyさん:2008/09/26(金) 14:14:13 ID:???
>>313
htmlspecialcharsで全体をエスケープしてから、
個別に戻すしかない。
329nobodyさん:2008/09/26(金) 14:16:41 ID:6bG1vTrj
うおおおおおおおおおおおおおおおおおおおおおおおお

うごいたーーーーーーーーーーーーーーーーーーーーー

がおおおおおおおおおおおおおおおおおおおおおおおお
330nobodyさん:2008/09/26(金) 14:17:13 ID:6bG1vTrj
うごいたうごいたうごいたうごいたうごいた
うごいたうごいたうごいたうごいたうごいた
うごいたうごいたうごいたうごいたうごいた
うごいたうごいたうごいたうごいたうごいた
うごいたうごいたうごいたうごいたうごいた

うーーーーーーーーーーーーーーー
ごーーーーーーーーーーーーーーー
いーーーーーーーーーーーーーー
たーーーーーーーーーーーーーー

あああああああああああああああああ
331nobodyさん:2008/09/26(金) 14:19:39 ID:6bG1vTrj
で、結論としては、
http://d.hatena.ne.jp/yoshifumi1975/20080620/p2
ここのページの、

■[PHP] mod_phpが使用する php.ini のパスを設定する方法
* httpd.conf の中で以下のように設定できる。
グローバルに設定されるので、VirtualHost等では使えない。

PHPIniDir /usr/local/etc/php.ini


↑これをまず読んだのね。で、
これをhttpd.confに設定すればいいんだと。
332nobodyさん:2008/09/26(金) 14:22:10 ID:6bG1vTrj
そんで次にこれを読んだのね。
http://php.benscom.com/manual/ja/configuration.php
php.ini を探す場所は、次の場所 (順番に) です。

(1) SAPI モジュール特有の場所 (Apache 2 における PHPIniDir ディレクティブ、
   CGI/CLI 版における -c コマンドラインオプション、
   NSAPI における php_ini パラメータ、 THTTPD における PHP_INI_PATH 環境変数)
(2) PHPRC 環境変数。PHP 5.2.0 より前では、 これは、次に挙げるレジストリキーの後にチェックされていました。
(3) PHP 5.2.0 では、レジストリの以下の箇所を順に探します。
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z\IniFilePath、
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y\IniFilePath および
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x\IniFilePath。
ここで x、y および z はそれぞれ PHP のメジャー、マイナー、 リリース番号を表します。
(4) HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath (Windows レジストリの場所)
(5) 現在の作業ディレクトリ (CLI を除く)
(6) Web サーバのディレクトリ (SAPI モジュールの場合)、 もしくは PHP ディレクトリ (そうでない Windows の場合)
(7) Windows ディレクトリ (C:\windows もしくは C:\winnt)) (Windows の場合) 、もしくはコンパイル時のオプション --with-config-file-path

、、、で、(1)に書いてあるPHPIniDir ディレクティブてのを
アパッチのhttpd.confに設定すればいいんだと。
それで、一番最後の行に入れて、アパッチを再起動したら、できた。
333nobodyさん:2008/09/26(金) 14:28:30 ID:???
>>320
全角のシングルクォートはmb_convert_kanaのaでは半角にならんのでは?

マニュアルには
> "a", "A" オプションに含まれる文字は、U+0022, U+0027, U+005C, U+007Eを除く U+0021 - U+007E の範囲です
って書いてある・・・0027ってシングルクォートだよな?
334age:2008/09/26(金) 17:24:58 ID:???
かなり、完成度が高い、プロ串を発見しました。
http://www.sjk.co.jp/index_w_j_imode.html

このプロ串は、接続方法はkeep-なんちゃらで、プロ串である情報が一切含まれていません。
このような、串を防ぐにはどうしたらよいでしょうか
335nobodyさん:2008/09/26(金) 17:50:40 ID:???
なんで串防ぎたいの?
336nobodyさん:2008/09/26(金) 17:58:00 ID:???
>>334
含まれてるよ
Proxy特有の環境変数をそれ経由で出してみ
ちゃんといくつか出てるから
337age:2008/09/26(金) 21:44:28 ID:???
>>336

この串は
HTTP_VIA
X_FORWERDED_FOR
HTTP_TE
など、串情報が送信されてないです。

他に、何か環境変数ありましたか?
どのようなものか教えてください。
338nobodyさん:2008/09/26(金) 22:50:38 ID:???
>>334
メール欄と名前間違えてる
どんなHTTPリクエストを吐くかはプロキシサーバの勝手です
知りたけりゃ世界中のプロキシサーバに仕様を聞いてまわります
そしてその中からおっすおらプロキシ!と
リクエストヘッダで名乗らないサーバのIPアドレスを禁止にします
ね、簡単でしょう?
339nobodyさん:2008/09/26(金) 23:03:12 ID:???
公開串は悪の温床。そんなことも分からないのか?
340nobodyさん:2008/09/27(土) 00:04:05 ID:???
>>337
ID出したら解決方法教えてあげるよ
341nobodyさん:2008/09/27(土) 10:57:41 ID:HGmYkZgj
皆様お願いします
配列 $list は以下の構造になっています

Array
(
[0] => あ
[1] => Array
(
[0] => い
[1] => う
[2] => え
[3] => お
[4] => Array
(
[0] => か
[1] => き
)

この配列の値の部分だけ取り出し1次元配列にしたく、以下のように記述してみましたが思った結果になりません
どうすればよいですか?

342nobodyさん:2008/09/27(土) 10:58:31 ID:HGmYkZgj
$kekka = list_all($list);

function list_all($list) {
$list_all = array();
foreach ($list as $key => $val) {
$list_all[] = $val;
if (is_array($val)) {
$list_all[] =list_all($val);
}
}
return $list_all;
}


このようにしたいです

Array
(
[0] => あ
[1] => い
[2] => う
[3] => え
[4] => お
[5] => か
[6] => き
)


343nobodyさん:2008/09/27(土) 11:21:55 ID:???
push使えよ
344nobodyさん:2008/09/27(土) 12:08:00 ID:HGmYkZgj
>>343
function list_all($list) {
$list_all = array();
foreach ($list as $key => $val) {
array_push($list_all, $val);
if (is_array($val)) {
array_push($list_all, list_all($val));
}
}
return $list_all;
}

このように記述してみましたが、同じ結果となり駄目でした
関数内の構造が悪いものと思われますが、具体的にどう書けばよいのでしょうか?
345211:2008/09/27(土) 12:32:44 ID:1XaClFhl
is_array($val)が真のとき、
array_push($list_all, $val);
array_push($list_all, list_all($val));
の両方が実行されますね。意図したロジックですか?

>>299
man dyld してみたところ、DYLD_PRELOAD というのはないようでした。

otool -L oci8.so すると、libclntsh.dylib.10.1が表示されるのですが、
/scratch/plebld/208/rdbms/lib/libclntsh.dylib.10.1
という意味不明なパスでした。install_name_tool というコマンドで、
存在するパスに変更してみましたが、変更前・変更後で動作が変わった
点は確認できませんでした。
346nobodyさん:2008/09/27(土) 13:40:09 ID:???
>>344
グローバルスコープを汚していいならこういうのもある

<?php
$arr = array(
'あ',
array(
'い','う','え','お',
array('か','き',)
)
);
var_dump($arr);
$out = array();
array_walk_recursive($arr, create_function('$data, $key', 'global $out; $out[] = $data;'));
var_dump($out);
347nobodyさん:2008/09/27(土) 13:51:05 ID:???
>>342

foreach () {
if(値が配列でなければ) {$配列に値を格納}
}
348nobodyさん:2008/09/27(土) 14:07:05 ID:HGmYkZgj
>>345
ご指摘ありがとうございます
>>347のロジックが正解です

>>346
思った結果となりました
ありがとうございました
349nobodyさん:2008/09/27(土) 14:25:50 ID:cA4bmdkf
すみませんが、お返事が頂けないので、
再度投稿させて頂きました。連日悩まされ続けているので、
本当に困っています。宜しくお願いします。

F5攻撃を違うIPで攻撃されているのですが、
これをサーバーに負荷をかけずに弾くことには、
どのような方法がいいですか?

いやゆる、DDOS攻撃だと思うんですが、
Juniper Networks NetScreen-5GT
を導入して、こういった攻撃に対抗することは可能ですか?
アドバイスお願いします。
350nobodyさん:2008/09/27(土) 14:31:08 ID:LCQeUZBK
DDoSって.htaccessでそのIPを
アク禁にするしか対処法ないんだっけ?
351nobodyさん:2008/09/27(土) 14:41:03 ID:???
はぁ?
352nobodyさん:2008/09/27(土) 14:45:37 ID:???
>>349
全然php関係ない話なんだけど誤爆?
353nobodyさん:2008/09/27(土) 14:50:32 ID:???
いやー
webprog板で聞け!とか
だれかに言われたんだろう
354nobodyさん:2008/09/27(土) 14:55:25 ID:???
にしてもこのスレに来る理由がわからん。

つーか鯖の種類も何も書かずにDDoS攻撃対策教えろとか言われてもな。
最終的な答えは自分で書いてるし。
355349 :2008/09/27(土) 15:00:52 ID:cA4bmdkf
色々、すみません。プログラムがphpで作っていまして、
そのphpが重いせいもあって、DDOS攻撃をされると、
処理の負荷が高くなりすぎて、サーバーが即死します。

それで、色々検索すると、Juniper Networks NetScreen-5GT
がそれに対応できると書いてあったのを見たのですが、
値段も結構するし、該当するスレもないので、困っています。

DDOS攻撃ってアプリケーション層で対応するしかないような気がするのですが、
そうだとしたら、phpで対応できなくもないのかなと思っています。
どうなのでしょうか?
356nobodyさん:2008/09/27(土) 15:06:01 ID:???
スレタイのせいで「板の」質問スレと思われる事がある
【】は飾り扱いされやすい
357nobodyさん:2008/09/27(土) 15:06:46 ID:???
じゃ処理見直せ
358nobodyさん:2008/09/27(土) 15:09:02 ID:???
>>355
>DDOS攻撃ってアプリケーション層で対応するしかないような気がする
この不可解な思考はまぁともかくとしてだ、phpが重いってのがわかってるなら
根本的に軽くするか処理の初期段階で連続アクセス弾くかDDoS対応の
ファイアウォール入れるかのどれかしかないだろう。

ちなみにNetscreenのスレがないのは明らかに板違いだからだ。通技板行け。
359nobodyさん:2008/09/27(土) 15:17:51 ID:???
質問です。
xpathは配列を返す関数だとして

$arr = $xml->xpath("hoge");
$node = $arr[0];

だとうまくいくのに

$node = $xml->xpath("hoge")[0];

だと [ でsyntax errorなんですがなぜでしょうか?
360nobodyさん:2008/09/27(土) 15:21:51 ID:???
361359:2008/09/27(土) 15:32:43 ID:QsC/zkZf
失礼しました。では改めて。

【OS名】不明
【PHPのバージョン】php5.26
【連携ソフトウェア】なし
【質問内容】
>>359
362nobodyさん:2008/09/27(土) 15:36:13 ID:???
$node = ($xml->xpath("hoge"))[0];
363359:2008/09/27(土) 15:38:08 ID:???
>>362
やっぱり [ でsyntax errorになります。
364nobodyさん:2008/09/27(土) 15:41:38 ID:???
list($node) = $xml->xpath("hoge");
365nobodyさん:2008/09/27(土) 15:44:57 ID:/NumMpeS
ここで質問するのはあれかもしれませんが、
php,mysqlで簡単なSNSを構築したいと考えています

どのくらいの期間は必要でしょうか?
366nobodyさん:2008/09/27(土) 15:46:22 ID:???
>>365
どのくらいのレベルの人間が何人いるのさ?
367nobodyさん:2008/09/27(土) 15:48:55 ID:t9Gh2l9F
こんにちわ。
ファイルアップロード時のエラーコードについて教えて下さい。

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" size="3000">
<input type="file" name="user_file">
<button type="submit">送信</button>
</form>

MAX_FILE_SIZEにsize=3000を指定しております。
このフォームから5000バイトのファイルを送った場合、
$_FILES["user_file"]["error"] に 2 が入るようなことが
phpマニュアルから読み取れましたが、 0 になってしまいます。

$_FILES["user_file"]["error"] に 2 が入るときはどのようなときなのでしょうか?
368359:2008/09/27(土) 15:51:55 ID:QsC/zkZf
>>362
そうも書けるんですね。どうもありがとうございます。

ところで、なんで>>359の後者ではエラーになるんでしょうか?
369nobodyさん:2008/09/27(土) 15:56:10 ID:???
それくらいは自分で考えようぜ
答え出てるんだから
370365:2008/09/27(土) 15:58:23 ID:/NumMpeS
>>366
自分一人です 能力は高いほうではありません phpは初心者です
勉強がてらログイン処理、マイページ、ファイルのアップロード
くらいのしょぼい機能をもつオリジナルのSNS(と呼んでいいのやら)なのですが、
ファイルの量が膨大になるなら人数を増やそうと考えています
371nobodyさん:2008/09/27(土) 16:02:25 ID:???
>>370
機能がしょぼいのはいいとして想定してる利用者の規模は?
372nobodyさん:2008/09/27(土) 16:04:08 ID:???
>>370
php以外でwebアプリを作った経験はあるの?
373365:2008/09/27(土) 16:05:33 ID:???
>>371
将来的にはできるだけ多くの利用者を考えていますが、
今のところ勉強が目的なので自分+友人数名程度で10人程度が対象です
374365:2008/09/27(土) 16:06:27 ID:???
>>372
Strutsを用いて簡単なのはやったことはあります
375nobodyさん:2008/09/27(土) 16:06:40 ID:???
最低いつまでに作りたいの?
376nobodyさん:2008/09/27(土) 16:11:22 ID:???
>>367
なんでだろね。おかしいね。
377nobodyさん:2008/09/27(土) 16:12:16 ID:???
Myスペックの出し方の下手くそっぷりから1年以上はかかるとみた
378365:2008/09/27(土) 16:15:18 ID:???
>>375
期間は4ヶ月が限度です それまでにはなんとかしたいと考えています
379nobodyさん:2008/09/27(土) 16:32:38 ID:???
>>378
無理ですね
380365:2008/09/27(土) 16:34:49 ID:???
>>379
そうですか ありがとうござました
381nobodyさん:2008/09/27(土) 16:35:30 ID:???
>>378
やるだけやってみりゃいいじゃん
別に仕事じゃないんだからできなかったらできなかったで怒られるわけじゃないし
382nobodyさん:2008/09/27(土) 17:36:03 ID:???
>>355
そのサーバはレンタル?自分で構成いじれるの?
Juniper Networks NetScreen-5GTとハード出してる時点で後者かな?
DoS攻撃をソフトでどうにかするのは限界があるから
ハードでどうにかするという点は正解
ただサーバ構成が複雑になるので
詳しくは自宅サーバ板やネットワーク板で聞いたほうがいい

http://pc11.2ch.net/mysv/
http://pc11.2ch.net/hack/
383367:2008/09/27(土) 17:37:25 ID:t9Gh2l9F
>>376
どうもです!

phpマニュアルのファイルアップロードのところをもう一度確認したところ、
<input type="hidden" name="MAX_FILE_SIZE" size="3000">
の size=3000 ではなく、 value=3000 でした;;
しかしながら、エラーコードは 0 から変わらず…

他のところでも聞いてみます、ありがとうございました。
384nobodyさん:2008/09/27(土) 17:40:13 ID:???
やってみたら2になったわ
385355 :2008/09/27(土) 17:57:36 ID:???
>>358
>>382
誘導どうもありがとうございます。
CISCOとかなら知っているのですが、Juniperって聞いたこともない会社なので不安で、
しかも、以前ここで聞いてもまったく反応がなかったので、やはり無名のルーターは駄目だと思ってしました。

通信技術板見たところ、そのスレがありました。
でも、スレ番が3で、人気がないみたいです。このスレは74なのに・・・

でも、DDOS攻撃に本当に対応できるのか、聞いてみます。
ありがとうございました。
386367:2008/09/27(土) 18:18:13 ID:t9Gh2l9F
>>384
こんばんわ!
確認ありがとうございます!

upload_max_filesize をデフォルトの 2M に設定していて、
試しに 2M 以上のファイルをアップロードしてみたんですが、
$_FILES ["user_file"]自体が作成されず、ただページがリロードされるだけみたいな…
本当なら 1 がエラーに入るみたいなことが書かれているのに…

さらに、テンポラリフォルダのエラー 6 も出そうとディレクトリを無くして試みましたが、
勝手に null で置かれる一時ディレクトリに置かれて普通にアップロードできてしまいました。

会社でも自宅でもエラーコードが変わらないので、
一旦諦めようと思いました。
387nobodyさん:2008/09/27(土) 21:25:12 ID:???
>>385
おまwww間違ってもそれ通技板で言うなよw答え返ってこなくなるぞw

>でも、スレ番が3で、人気がないみたいです。このスレは74なのに・・・
比較対象がおかしい
388nobodyさん:2008/09/27(土) 21:33:03 ID:???
>>365
4か月も期限があるならその中でがんばりゃいいだけの話だと思うんだがなぁ・・・。
1か月とかだと流石にムリだろって話にはなるが。
389nobodyさん:2008/09/27(土) 21:44:55 ID:???
>>386
お前何か勘違いしてないか?知識なんて使って減るもんじゃないから只だと思ってんだろ?
人に物を訊くってのがどういう事だか、自覚してる?
知識ってのはな、社会人に取って金と同じく貴重な財産なんだよ。使っても減らないけど、教えたら広まった分だけ価値が下がる。それを分けてくれって言ってんの自分でわかってる?
社会で必要とされる知識ってのはな、本になんか載ってない事ばかりなんだよ。全部人から人へ、直接のコミュニケーションを介して伝わって来たモンなんだ。
そういうノウハウを分けてもらう申し訳無さみたいな物が、伝わって来ないんだよ。お前の態度からは。
猿だって仲間から餌を分けてもらう時は申し訳無さそうな顔するんだよ。ヘラヘラ笑いながら近づいてったら殴り殺されんぞ。
猿だったら今頃とっくに死んでんだよお前。そんな態度で今まで。何回も言ったよな。謝る時は申し訳無さそうな顔をしろって。
そういう学校じゃ受けられない教育を受けておきながら、社会人を経験しなきゃ得られない知識を貰っておきながら、
何にも生かせてないんだよ今のお前は。学生のサークルごっこじゃないんだから。もっと四六時中危機感を持って生きてなきゃ駄目だよ。いい加減いつまで学生気分じゃ。
390nobodyさん:2008/09/27(土) 21:48:24 ID:???
>>389
マルチ乙
391たまちゃん ◆ExGQrDul2E :2008/09/27(土) 22:55:12 ID:lTVm1+x/
みなさんお久しぶりです。
日頃からの回答感謝しています。
今での質問のなかで、一つだけまだ機能として実装できてないものがあります。
list.txtには
7<>たま<>テスト
6<>たま<>テスト
5<>たま<>テスト
4<>たま<>テスト
3<>たま<>テスト
2<>たま<>テスト
1<>たま<>テスト
0<>たま<>テスト
記事を表示する際に、
【続く】
392たまちゃん ◆ExGQrDul2E :2008/09/27(土) 22:57:45 ID:lTVm1+x/
【続き】
?page=0なら
上から
レス記事1〜7を表示したいです。
[2]名前
[3]名前
[4]名前
[5]名前
[5]名前
?page=1なら
[0]名前
[1]名前
[2]名前
[3]名前

と表示したいです。
どのように回せばよいか教えてください。
現在は、そのまま表示していますので
上に新しい記事がきてしまいます。
[7]
[6]
[5]

です。
393たまちゃん ◆ExGQrDul2E :2008/09/27(土) 23:01:41 ID:lTVm1+x/
【続き】
に修正です。
希望は
?page=0のとき
[3]
[4]
[5]
[6]
[7]
?page=1のとき
[0]
[1]
[2]
しかし、現在は?p=0のとき[7]
[6]

?p=0のとき
[2]
[1]
[0]
となって表示されてしまいます。
394nobodyさん:2008/09/28(日) 00:26:15 ID:???
http://hain.jp/index.php/tech-j

こいつの文章の書き方、変。
395nobodyさん:2008/09/28(日) 01:11:41 ID:XPzqjxjb
おひさ!たまちゃん応援あげ
ええっと、そのまま表示する一つ手前に逆ソートさせると幸せになります。

その他の方法もあります
ログの記録方法を古いのを上にして新しいのを下にくるようにすると
逆ソートする必要がなくなるばかりか処理数も減って経済的になります
396nobodyさん:2008/09/28(日) 02:39:56 ID:nY0Ki6gH
PHPの質問が週末で全然ないので、どさくさにマギレテ質問。

街中で猫をよく見かけるけど、猫の死体を今まで見たことがない。
あれってどうして?
397nobodyさん:2008/09/28(日) 02:47:27 ID:???
>>393
本当に掲示板作ってんのかは知らんけど他の掲示板とかフォーラムとか見てみたほうがいいと思う
そんな仕様の掲示板はまずないw
398nobodyさん:2008/09/28(日) 03:02:06 ID:???
399nobodyさん:2008/09/28(日) 17:20:15 ID:mGLv8aDS
PEARってCPANなの?
400nobodyさん:2008/09/28(日) 17:24:07 ID:???
はぃ?
401nobodyさん:2008/09/28(日) 17:55:10 ID:???
PEARはCPANだった説浮上
402nobodyさん:2008/09/28(日) 18:33:41 ID:1NYbZ1eS
あるファイルをバイナリ形式で読み出して
ファイル中に0xffd8があるかを判定したいのですが
バイナリ形式のデータをどう比較したらいいのか分かりません

$handle = fopen( "path/fname", "rb" )
while($data=fread( $handle,2)){
 if($data==0xffd8)break;
}

という風に書いてみたんですが駄目でした
条件判断はどう書けばいいんでしょうか
403nobodyさん:2008/09/28(日) 18:38:29 ID:???
お前は何をやってるんだ
404nobodyさん:2008/09/28(日) 20:44:59 ID:mGLv8aDS
http://plaza.rakuten.co.jp/oyadomymy/diary/?ctgy=10
これってなんで起きるの?
405nobodyさん:2008/09/28(日) 20:46:34 ID:???
これってどれだ
406nobodyさん:2008/09/28(日) 23:55:48 ID:SL3TE0tZ
PHPで die("error message"); としても、エラーが表示されません。
なにか原因に心当たりある方は教えてください。
なおコマンドラインで使ってます。
$ php -v
PHP 5.2.4 (cli) (built: Oct 24 2007 10:17:16)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

407nobodyさん:2008/09/28(日) 23:58:42 ID:???
>>406
ちょwww
お前、個人情報の部分は隠せよw
408nobodyさん:2008/09/29(月) 00:19:00 ID:W7Sp3KHk
◆質問用テンプレ
【OS名】linux
【PHPのバージョン】php4
【連携ソフトウェア】mysql
【質問内容】
wiki記法のパーサを探してます。

wiki記法で記述したテクストをHTML化したい。
ページ全体の作成ではなく、HTMLのコンテンツの一部を生成したいのです。

どんな記法でも構わないので、それ単体で使えるライブラリみたいなものありませんでしょうか。

さっき、pukiwikiをダウンロードしてみたんですが、どこでなにをやってるのかさっぱり分かりませんでした。

よろしくお願いします。
409nobodyさん:2008/09/29(月) 00:30:11 ID:???
>>408
PEARにあったと思う
410たまちゃん ◆ExGQrDul2E :2008/09/29(月) 00:43:54 ID:Jzqvotik
>>395
やっぱりうまくいかないです。
>>397
ヌルパティオというヌルさんが作ったCGI/Perlの掲示板がそうです。

あと、これも考えたいです。
投稿フォームには現在遠隔投稿対策の為にセッションを発行しています。
writeform.phpには
<intut type="hidden" name="ses" value="$sesionid">
これでセッションを発行しています。
write.phpには
session_start();
$id = session_id();
if($_POST['ses'] !== $id){
die("セッションエラーです。正しくフォームから書き込んでください。");
}

これでは、やはり外部から遠隔投稿されます。
どのようにしたらよいでしょうか?
411nobodyさん:2008/09/29(月) 00:54:06 ID:???
>>410
遠隔投稿を防ぐのに、sessionなんて無意味だよ。
セッションっていうのは、遠隔であろうが近場であろうが、発行されるもの。
ホスト名のドメインをみて、jp以外だったら弾くっていうのが一番効果的。
412nobodyさん:2008/09/29(月) 01:02:35 ID:???
>>410
ホスト名だと逆引きできないものがあるから、
IPアドレスを見る方がいい。
国によって割り当てられているIPアドレスの帯域が違うから、
それを丁寧に条件分岐すればお望みのものが出来る。

これ以上は、スレ違いなので、別板へ
413408:2008/09/29(月) 01:36:05 ID:W7Sp3KHk
>>409
ありがとうございます

ただ、さっきこんなものを発見して解決してしまいました↓
http://pctraining.s21.xrea.com/lab/?cmd=read&page=PukiWiki%2Fparser
まさに、欲しかったものでした
414410:2008/09/29(月) 01:42:07 ID:???
>>411-412
詳しくどうもありがとうございます。
スパム関係の投稿が多く悩まされていたのですが、
教えて頂いた方法をヒントに、やってみます。
助かりました。
415nobodyさん:2008/09/29(月) 04:25:07 ID:???
今福山通過して、そろそろ三原も通過する予定。
ああ、寝台の中からこのスレに投稿するのも乙なものだ。
416nobodyさん:2008/09/29(月) 04:50:57 ID:???
いいなぁ寝台
で、どこの誤爆?w
417nobodyさん:2008/09/29(月) 05:03:38 ID:???
多分ここの実況民の誤爆とみた。ここで最近ここのスレをウォッチするのが流行っている。

http://www.ntt-fukushima.com/sora/mado_live/jr_aizu/gazai/jrwaka500k.wvx
418nobodyさん:2008/09/29(月) 07:03:29 ID:???
死んだ医者
どんだけ誤変換ww
419nobodyさん:2008/09/29(月) 11:38:01 ID:Oi0746v4
テンプレートを読み込んで、条件によってテンプレートの内容を変えたい場合、
SMARTYを使うしか道は無いのでしょうか?

例えばメールフォームで、あるチェックボックスがチェックされた状態のときだけ、
メールアドレスをテンプレ内に表示してそれをメールで送るというテンプレートを作りたいとき、などです。

mail($to, $subject, getBody());
// とある条件によって変わるテンプレートを返す関数
function getBody() {
  // ???
}
420nobodyさん:2008/09/29(月) 11:59:29 ID:???
>>419
Smartyを使わなくても、
ob_start(); include('temp1.php'); return ob_get_clean();
でいいんじゃないの。


後はわかるよね。
421nobodyさん:2008/09/29(月) 12:55:05 ID:Oi0746v4
>>420
出力のバッファリング・・・
こんなのがあったんですね。
ありがとうございます。ちょっと試してみます。
422nobodyさん:2008/09/29(月) 14:52:54 ID:???
423nobodyさん:2008/09/29(月) 16:16:23 ID:???
PHPってuse strictないの?
424nobodyさん:2008/09/29(月) 16:18:53 ID:???
PHPエディタ使ってるんだけど、
ctrl+nで
新規文書開けないんだけど、なんで?
425nobodyさん:2008/09/29(月) 16:50:18 ID:???
>>423
Perlじゃないんだから・・・
デバッグならPECLで十分だと思うが

>>424
実装してないからじゃないか
426nobodyさん:2008/09/29(月) 17:20:10 ID:IQToQr5s
指定したファイルのヘッダーを読む関数はありますか?
良ければ教えてください
427nobodyさん:2008/09/29(月) 17:49:19 ID:???
ファイルのヘッダーってなんじゃ?
428nobodyさん:2008/09/29(月) 18:09:10 ID:???
>>426
ファイルにはヘッダーがあると言う説が急浮上
429nobodyさん:2008/09/29(月) 18:10:33 ID:Oi0746v4
PHPのスレの質問だから発想しないが、
もっと低下層の話ならヘッダーはあると言える
430nobodyさん:2008/09/29(月) 19:32:41 ID:bAwpdHkC
【OS名】centOS5
【PHPのバージョン】php5.1.6
【連携ソフトウェア】mysql postgresql ZendFramework
【質問内容】rpmで入れた5.1.6でおかしな現象に悩まされています。

別々のはずのインスタンスが、同じ値になってしまいます。
おそらく、あるクラスのstaticな変数に入っているインスタンスの中でnewした
別のインスタンスで起こるのではないかと思います。
(必ず起こるわけではないので、ハッキリいえませんが。)

具体的な例を挙げると
DBに接続クラスをシングルトンで実装して、
そのインスタンスをSQLビルダ的なクラスの中のstaticな変数に保持していたとします。

で、そのDB接続クラスのなかで、SQLなどを保持するProfilerクラスをnewしていたとします。

DBの接続が複数あって、幾つかのDB接続クラスを、色々な場所でgetInstanceして、最終的に、全てのDB接続クラスを集めて
全部のSQLを表示しようとすると、Profilerクラスが上書きされているようで、発行したSQLが残ってません。

var_dumpするとそれぞれOBJECTのIDは別々です。でも、確かに発行したはずのSQLが残ってません。
インスタンス化する順番を変えて、SQLを発行したインスタンスを一番下に持ってくるとSQLは残ってます。
必ず再現するわけではなく、簡単なスクリプトでは再現しません。なるべくクラスの階層構造を複雑にすると起こりやすい感じです。

で、PHPをソースから入れて5.2.6にしたところ解消しました。
他にも、強引に回避する方法はあるのですが、気持ち悪いです。
ChageLogもざっとみたら、Ref関連の修正は結構されてるみたいです。

なんか、これじゃないか?とか、これで確実に起こせるって言うのご存知でしたら教えていただけないでしょうか?
私が開発している幾つかのサーバーはソースから入れることができないので、しばらくこのバージョンで頑張らなければならなそうなので。
抽象的な質問で申し訳ございません。
何か思い当たることありましたらお願いします。
431nobodyさん:2008/09/29(月) 19:37:36 ID:???
質問したい内容を3行にまとめろ
432nobodyさん:2008/09/29(月) 19:40:24 ID:???
3行以上読めないのなら無理して読むな池沼
433nobodyさん:2008/09/29(月) 21:13:18 ID:???
バイナリファイルならヘッダあるだろ
それでmimeタイプでもチェックしたいと思ったんだろうが
残念ながら俺知らない
434nobodyさん:2008/09/29(月) 21:53:24 ID:???
>>433
>バイナリファイルならヘッダあるだろ

そうか?そうなのか?
435nobodyさん:2008/09/29(月) 21:56:28 ID:???
>>434
そうですよ
知らなかったんですか?
436nobodyさん:2008/09/29(月) 22:09:08 ID:???
確かに昔のmacはファイルに必ずヘッダがあったな。
OSXになった今はどうなんだろう。
437nobodyさん:2008/09/29(月) 22:54:04 ID:ex4B3ZuI
PHPの確認動作で、phpinfo.php.txtとアドレスに表示されたまま、
画面には<? phpinfo(); ?>
と出てしまいます。
明らかに間違いですが、何がおかしいと思いますか?
どなたか教えてください。
438nobodyさん:2008/09/29(月) 23:20:03 ID:gVVh/XQ6
全部。
まずは日本語がよくわからない。
439nobodyさん:2008/09/29(月) 23:24:33 ID:???
>>437
釣りだとしてもレベルが低すぎる
440nobodyさん:2008/09/30(火) 00:41:03 ID:???
>>437
おそらく原因は2つ。
・ファイル名(拡張子)が違う。
・サーバーに載せてない。
441nobodyさん:2008/09/30(火) 01:59:04 ID:RtOKxw56
こんばんわ

>>437
webサーバが phpinfo.php.txt をテキストファイルとして読み込んでいます。
ファイルの拡張子は  .php にしてください。
httpd.conf に AddType application/x-httpd-php .php を記入しているか確認してください。
windowsの場合、フォルダオプション‘->登録されている拡張子を表示するがonになっていないと、
.txtファイルで保存されちゃうかもしれません。
442nobodyさん:2008/09/30(火) 06:15:50 ID:???
メモ帳で作ったから、
phpinfo.php
って名前で保存したつもりでも,メモ帳が勝手に
.txt
を付け加えてしまって、結果、
phpinfo.php.txt
というファイル名になってるのかもしれないね。

>>437は、OSは何を使ってるのかな?
それと、PHPはxamppでやってるの?
443nobodyさん:2008/09/30(火) 07:02:06 ID:???
どうでもいい単純な質問になると我先にと生き生き答えるスレ民達であった
444nobodyさん:2008/09/30(火) 11:09:19 ID:???
だってその方が頭使わないじゃん
445nobodyさん:2008/09/30(火) 12:14:33 ID:???
PHPエディタって
コードの補完ってできないの?
446nobodyさん:2008/09/30(火) 12:18:11 ID:Q2dKloww
$a=1;
$b=2;
print $

このときに、$って打ったら、$a、ってのが
候補として出てきて欲しいんだけど。

eclipseならできるんだけど、
PHPエディタだと無理なのかな?
447nobodyさん:2008/09/30(火) 14:39:27 ID:n31zCKx4
getVar("name")がある配列を返すとして、その配列の[0]にアクセスしたい場合、
どう書くのがスマートでしょうか?
PerlのようにgetVar("name")[0]とはできないので、
やはり
$var = getVar("name");
$var[0]:
と一度代入するしかないのでしょうか?
448nobodyさん:2008/09/30(火) 14:47:56 ID:???
>>447
それがベスト

getVar("name", 0);
と入力したら配列の0番目で
指定しなかったら配列丸々返すように関数内で指定してもいいんじゃね?
449nobodyさん:2008/09/30(火) 15:12:00 ID:???
>>447
list関数で取得するのもアリ

list($var0) = getVar('name');

[0]じゃなくて[1]がほしい時は
list(,$var1) = getVar('name');
ってことも出来る
450nobodyさん:2008/09/30(火) 15:13:20 ID:KB/3kn7l
URLを送ると
ソースのヘッダーから
titleとmeta keywordsとmeta descriptionを取得するソースをください
451nobodyさん:2008/09/30(火) 16:24:54 ID:Q2dKloww
エディターは何使ってる?
PHPエディターは関数名の補完ができるのはいいが
変数名の補完ができないし、
eclipseは関数名の候補は出してくれないが、変数の補完ができるし。
452nobodyさん:2008/09/30(火) 17:13:33 ID:???
大したもん作ってないだろうに変数名の入力ぐらい面倒くさがんな
453nobodyさん:2008/09/30(火) 17:40:43 ID:???
>>451
eclipseは関数名の補完も出来るぞと言っておく
詳しくはeclipseスレへ
454nobodyさん:2008/09/30(火) 17:46:14 ID:Q2dKloww
prin

と打ったときに、ctrl+spaceとかで

print
printf

とか、prin、、、ではじまる関数を
50個くらい出してほしい。

PHPエディタならこれができるが、
eclipseだとなぜかできない。
455nobodyさん:2008/09/30(火) 17:53:27 ID:???
そろそろいい加減にしてくれ
456nobodyさん:2008/09/30(火) 17:53:54 ID:???
>>454
plugin次第だろ
ていうかprinからはじまる候補50個なんて無駄なだけ
だいたいクラス含めてprinから始まるのなんてそんなねえだろ
457nobodyさん:2008/09/30(火) 18:18:26 ID:???
>>454
独自関数のことを言っているのか?それならビルドしてないだけだろ
いいかげんeclipseスレ逝けや
458nobodyさん:2008/10/01(水) 01:39:43 ID:mzYCcubZ
PHPのDOMでテキストノードを作成した時に
エンティティを置換させないにはどうしたらいいのでしょうか
下記の例は単純にBody要素内に”>”と言う文字要素を追加するコードで
期待されるブラウザ上の表示は”>”ですが
実際には"&"がエンティティとして"&"に置換され"&gt;"と出力され
ブラウザ上には">"と表示されます。
このようにならないためにエンティティを置換させないにはどうしたらよですか

<?php
$doc= new DOMDocument();
$doc->LoadHTML("<html><body></body></html>");
$body=$doc->getElementsByTagName("body");
$body->item(0)->appendChild($doc->createTextNode(">"));
echo $doc->saveHTML();
?>
459nobodyさん:2008/10/01(水) 01:43:52 ID:mzYCcubZ
>>458の文章は&のエンティティが置換されて意味が通じなくなりました
&を全角の&に直して書きます

PHPのDOMでテキストノードを作成した時に
エンティティを置換させないにはどうしたらいいのでしょうか
下記の例は単純にBody要素内に”&gt;”と言う文字要素を追加するコードで
期待されるブラウザ上の表示は”>”ですが
実際には"&gt"がエンティティとして"&ampgt;"に置換され">"と出力され
ブラウザ上には"&gt;"と表示されます。
このようにならないためにエンティティを置換させないにはどうしたらよですか



<?php
$doc= new DOMDocument();
$doc->LoadHTML("<html><body></body></html>");
$body=$doc->getElementsByTagName("body");
$body->item(0)->appendChild($doc->createTextNode("&gt;"));
echo $doc->saveHTML();
?>
460nobodyさん:2008/10/01(水) 01:46:27 ID:mzYCcubZ
すいませんこの2行を間違えました
×
実際には"&gt"がエンティティとして"&ampgt;"に置換され">"と出力され
ブラウザ上には"&gt;"と表示されます。


実際には"&"がエンティティとして"&amp"に置換され"&ampgt;"と出力され
ブラウザ上には"&gt;"と表示されます。
461nobodyさん:2008/10/01(水) 01:49:24 ID:???
なんで置換されたらだめなん?
462nobodyさん:2008/10/01(水) 01:53:26 ID:mzYCcubZ
コード側(自分で書いたコード)でエンティティを置換した後の文字列をテキストノードに追加したいからです
463nobodyさん:2008/10/01(水) 02:01:25 ID:???
CDATAで追加するとか?
464nobodyさん:2008/10/01(水) 02:04:35 ID:mzYCcubZ
>>463
ありがとう御座います
期待した結果が得られました。
465nobodyさん:2008/10/01(水) 02:07:05 ID:???
それは良かった
466nobodyさん:2008/10/01(水) 08:35:56 ID:???
467nobodyさん:2008/10/01(水) 08:48:43 ID:???
なんとかかんとかっていう法則があってだな、
468nobodyさん:2008/10/01(水) 09:06:13 ID:???
PHPの勉強をはじめるには、
PHPとアパッチを個別にインストールするよりも
xamppを入れたほうが確実で早いの?
469nobodyさん:2008/10/01(水) 10:09:41 ID:MxqcSQCR
http://www.standpower.com/php_grammar.html

ここにのってたサンプルなんだけど、
<?php
$aaa = "bbb";
$bbb = "ccc";
print($$aaa);
?>

↑なにこれ?
perlで言うところの、リファレンス??
470nobodyさん:2008/10/01(水) 10:20:13 ID:MxqcSQCR
なんでPHPって、
配列が@aでなくて
$aなの?
471nobodyさん:2008/10/01(水) 10:37:57 ID:???
PHPは変数も配列もハッシュも全部一緒
472nobodyさん:2008/10/01(水) 10:40:33 ID:MxqcSQCR
PHPエディタなんだけど、
フォントの大きさを14以上にしたいんだけど、
なんでこれ、14までしかないの?
473nobodyさん:2008/10/01(水) 10:43:45 ID:???
エディタの質問は板違いじゃね?
474nobodyさん:2008/10/01(水) 11:22:48 ID:MxqcSQCR
<?php
$a=500000;
while ($a > 0) {
print ($a."<br />\n");
$a--;
}
?>


↑このコードを実行したら、
Fatal error: Maximum execution time of 60 seconds exceeded
というエラーメッセージが出て、
止まってしまいました。
60秒以上かかるコードは実行できないのでしょうか?
475nobodyさん:2008/10/01(水) 11:52:55 ID:MxqcSQCR
http://www.standpower.com/php_form.html

↑これってタイポだよね?
<form action="input.php" method="post">

ここと

名前を入力してみましょう。
<form action="output.php" method="post">

ここが違う。一致してない。inputとoutput
476nobodyさん:2008/10/01(水) 12:10:44 ID:???
入力したテキストはnameという名前でで送信されているので

↑ここも間違ってるし。
477nobodyさん:2008/10/01(水) 12:26:33 ID:???
なんかPHPのメーリングリストか、
あるいはWEB上のコミュニティに入りたいんだが、
どこかいいところ教えて。
478nobodyさん:2008/10/01(水) 12:36:06 ID:Zwlv2Kek
レンタルサーバー上で作成した画像(image_graphで作成)の
権限がApacheになっていて
同一ファイルをFTPでUPすると拒否されてしまいます。
削除はできるんですがどうにか作成時にこの権限を変える方法はないのでしょうか?
479nobodyさん:2008/10/01(水) 12:37:28 ID:???
>>477
ここでいいよ
480nobodyさん:2008/10/01(水) 12:38:15 ID:???
>>478
CHMOD
481nobodyさん:2008/10/01(水) 12:46:35 ID:Zwlv2Kek
CHMODで所有者を(Apache)レンタルサーバーから
レンタルしている自分(使用者)へ変更できますか?
所有者へのパーミッションの変更はわかりますが所有者自体の変更がどうもわからないのです。
482nobodyさん:2008/10/01(水) 12:55:23 ID:Zwlv2Kek
レンタルサーバ→チカッパ
PHPバージョン→4.4.2 です。
483nobodyさん:2008/10/01(水) 12:56:02 ID:???
なんか急に超初心者レベルの質問が増えたな
484nobodyさん:2008/10/01(水) 13:05:51 ID:???
>>481
chmodが可能なら、パーミッションを777にでも変えちゃえば?
485nobodyさん:2008/10/01(水) 13:45:32 ID:MxqcSQCR
セッションIDってどうやって見ればいいの?
486nobodyさん:2008/10/01(水) 13:56:34 ID:???
何のセッションID?
487nobodyさん:2008/10/01(水) 14:00:18 ID:hfGR6AXL
htmlentitiesと同じような文字列をエスケープする関数を作りたいのですが
特定のタグのエスケープをしないようにするには
どうすれば良いでしょうか?
仮にfontタグのみ許すとすれば

echo htmlentities('<a><font size="6">あいうえお</font></a>')

&lt;a&gt;<font size="6">あいうえお</font>&lt;/a&gt;
このような結果にしたいです

488nobodyさん:2008/10/01(水) 14:03:28 ID:???
489nobodyさん:2008/10/01(水) 14:06:51 ID:Zwlv2Kek
777に変えても無駄なんです
所有者の権限を変える以前の問題なんです
490nobodyさん:2008/10/01(水) 14:07:33 ID:hfGR6AXL
>>488
特定のタグを取り除くのではなく特定のタグ以外の文字列の
アンパサンド
小なり
大なり
シングルクオート
ダブルクオート
をHTML エンティティに変換したいのです
491nobodyさん:2008/10/01(水) 14:15:21 ID:???
初心者用PHP入門
http://www.standpower.com/

この講座終わった。


アップロード 初心者用PHP入門
http://www.standpower.com/php_up.html

これやる。
492nobodyさん:2008/10/01(水) 14:16:03 ID:???
>>490
http://jp2.php.net/manual/ja/function.get-html-translation-table.php
変換テーブル取って変えたいとこだけ変える
493nobodyさん:2008/10/01(水) 14:16:04 ID:???
まちがえたこっちだった

初心者が送るPHP入門
http://ww7.tiki.ne.jp/~inabah/php/index.htm
494211:2008/10/01(水) 14:33:51 ID:bvCNIVPX
>>478
「拒否される」とは具体的にどうなる?
>>489
なぜ所有者の権限を変える以前の問題だと考えているんですか?

ファイルの作成・削除はディレクトリに書き込み属性があればできる。

ファイルの更新はファイルに書き込み属性があればできるが、
上書きしようとするとき「ftp」が「削除して作成」しているなら
ファイルに属性を設定しても無意味なのはその通り。
495nobodyさん:2008/10/01(水) 15:12:27 ID:???
Aというディレクトリからファイル名が一番大きなファイル(数字.dat)を取得したいのですが、どんな方法が一番良いでしょうか?

dirで全ファイル配列にいれてsortするくらいしか思いつきません、
お願いしますm(_ _)m
496nobodyさん:2008/10/01(水) 15:18:34 ID:???
>>494

>ファイルの作成・削除はディレクトリに書き込み属性があればできる。
訂正
ファイルの作成・削除はディレクトリに実行属性があればできる。
497nobodyさん:2008/10/01(水) 15:20:50 ID:???
>>495
ファイル名の長さが同じならmaxでもいいぜ
498nobodyさん:2008/10/01(水) 15:56:05 ID:8jdCO2u0
質問させてください。
PHPでフォームのあるウェブサイトを作っていて、他からのリンクでページに来た時などと、フォームからデータを送信してきた時で表示を変えています。
しかし、フォームを空にして送信してきた場合、他からのリンクで来た場合の表示をしてしまいます。
フォームを空にして送信してきた場合を判定する方法は何かありますでしょうか?
499nobodyさん:2008/10/01(水) 16:02:43 ID:???
>>498
空じゃないときに本来送られてくるデータが空かそうでないかチェックすればいいんじゃね?
500nobodyさん:2008/10/01(水) 16:17:33 ID:???
http://example.com/index.html

など、http://example.com/〜にアクセスがあったときに、自動的に

http://example.com/HOGE.php

に飛ばすようにしています。

そこで色々チェックを行い本来アクセスのあったURLにジャンプしようと思っているのですが、

header("Location: ". $_SERVER['REQUEST_URI']);

とすると、無限ループしてしまいます。

echo file_get_contents(パス. $_SERVER['REQUEST_URI']);

のようにして、呼び出そうと思ったのですが、この場合画像やFlashは表示されず、

テキストとして表示されてしまいます。

何かうまく表示する方法はないでしょうか?
501500:2008/10/01(水) 16:17:57 ID:YIHO5yeH
すみません、sageチェックはずすのを忘れていました

宜しくお願いします。
502nobodyさん:2008/10/01(水) 16:26:29 ID:???
>>500
>http://example.com/〜にアクセスがあったときに、自動的に
>http://example.com/HOGE.php
>に飛ばすようにしています。

何で飛ばしているのか知らないけど、
それじゃあ、常にチェック用のHOGE.phpへ飛んでいくわな。
(チェックが終わっていようが、終わっていなかろうが)
503nobodyさん:2008/10/01(水) 16:27:14 ID:???
504498:2008/10/01(水) 16:34:48 ID:???
>>499
回答ありがとうございます。
そのチェックはすでにしているのですが、それだけだと初めて他のリンクなどから来た場合とフォームから空データを送信した場合の切り分けができないのです。
505nobodyさん:2008/10/01(水) 16:43:58 ID:???
>>504
フォームにhiddenでなんか適当な値を持たせておけば良いじゃん。
506498:2008/10/01(水) 16:52:35 ID:???
>>505
なるほど
チェックボックスなどで常にcheckedを指定しておくわけですね。
ありがとうございます。
やってみます。
507nobodyさん:2008/10/01(水) 16:57:25 ID:???
>>506
いや、hiddenだって
<input type="hidden" name="from" value="form">
とか
508211:2008/10/01(水) 17:10:40 ID:bvCNIVPX
>>500
Content-Type: ヘッダーを送ってないからじゃないですか?
こういうの使うのかな?よく知らないけど。
http://www.php.net/manual/ja/book.fileinfo.php
509478:2008/10/01(水) 17:42:57 ID:Zwlv2Kek
>>494
拒否されるって表現が変だったかもしれませんが
FTPでアップロードしても失敗みたく何度もリトライを繰り返します。

pngが置いてあるディレクトリ自体の所有者は自分(契約者)になっています。
スクリプトでレンタルサーバー上で作成したファイルは作成したのがレンタルサーバーなので
その所有者(Apache(レンタルサーバー管理者))になるようです。

スクリプト作成なので所有者ではないので書き込み属性をいじる前で
スクリプト作成時に何らかの方法で所有者がApacheにならずに契約者にするほうほうがを探してます
(もしくは作成後に変更)
510211:2008/10/01(水) 18:12:03 ID:bvCNIVPX
ウェブサーバーのプロセスの実効ユーザーが apache ということですね。
普通は所有者を変える権限を持ってないので変えられません。

ftpで処理のリトライが起きているとき、サーバーがどんなエラーを返して
いるか確認しないんですか?

私の環境では所有者がrootであってもファイルに適切な書き込み権限があれば
ftpで上書き更新できました。
511nobodyさん:2008/10/01(水) 18:31:45 ID:???
だからファイル自体のパーミッションを変えろと

ってか、自動生成するファイルを手動で更新する、という事が妙
512nobodyさん:2008/10/01(水) 18:43:10 ID:YIHO5yeH
>>508
サンクス

PECLってPEARと同じようなものだと思ってたけど全然違うのな
513たまちゃん ◆ExGQrDul2E :2008/10/01(水) 19:23:22 ID:ZUcHfGMW
PHP 配列
list.txtには、5人の名前とナンバーが保存されています。
1<>田中<>
2<>西田<>
3<>山中<>
4<>鈴木<>
5<>山田<>
これを
$list = file("./list.txt");
foreach ($list as $view){
list($no,$name) = explode('<>', $view);
echo "ナンバー{$no}:{$name}";
}
で表示するんですが、このままだとすべて表示されます。それで、今回は、会員ファイルにいる会員のみに特別にメッセージを表示するスクリプトを考えています。メンバーファイルのメンバーは、かならず
リストファイルの中の人が保存されています。
member.txt
2<>西田<>
5<>山田<>
list.txtの中身を表示するときに、member.txtのなかに同じナンバーがあれば『メンバーです』と表示させたいのですがどうしたらよいのでしょうか?
【続く】
514たまちゃん ◆ExGQrDul2E :2008/10/01(水) 19:24:48 ID:ZUcHfGMW
【続き】
私はこう考えましたがうまく動かないです。

$list = file("./list.txt");
$member = file("./member.txt");

foreach ($list as $listview){
list($no,$name) = explode('<>', $listview);

foreach ($member as $memberview){
list($memberno,$membername) = explode('<>', $memberview);

if{$no == $memberno){
$mes="あなたはメンバー";}else{
$mes="";
}


echo "{$mes}ナンバー{$no}:{$name}";
}
}

515478:2008/10/01(水) 19:27:23 ID:Zwlv2Kek
>>510
ありがとうございます。
所有者ってところにこだわりすぎてました。
>私の環境では所有者がrootであってもファイルに適切な書き込み権限があれば
ftpで上書き更新できました。
これでやっと理解でき
image_graphでの作成の過程でchmod(aa.png",0707)としたら上書きができました。
かなり長い間迷っていたのでほんとうにありがとうございますm(__)m

>>511
>自動生成するファイルを手動で更新する
数日に一度たまにやる超高負荷な部分を自宅PC数台で処理させて
日々のすこしの処理はレンタルサーバー上でやるって感じです。

516nobodyさん:2008/10/01(水) 19:29:46 ID:???
>>514
in_array
517211:2008/10/01(水) 19:32:25 ID:bvCNIVPX
>>514
$member の foreach ループで、$mes に値をセットしても
ブレイクするなどしないとまたブランクに戻ってしまう可能性が
ありますね。
518nobodyさん:2008/10/01(水) 20:23:11 ID:???
>>478
いまさらだが
http://jp.php.net/chown
519nobodyさん:2008/10/01(水) 20:38:27 ID:3YFA2aVn
掲示板などのフォームでhtmlタグを一部だけ許可するときに
自分でイチから書くと死ねるとおもうんですが、
そういうライブラリとかって、どなたか作られてないですかね・・
520nobodyさん:2008/10/01(水) 20:39:19 ID:???
487の人?
521nobodyさん:2008/10/01(水) 20:44:26 ID:???
>>519
そんなに許可するタグ多いのか???
522nobodyさん:2008/10/01(水) 20:47:30 ID:???
20も無いと思うんだが
523nobodyさん:2008/10/01(水) 21:13:46 ID:3YFA2aVn
いや別人です。。
許可は10個くらいです。
524nobodyさん:2008/10/01(水) 21:18:49 ID:???
488でいけそうです
525nobodyさん:2008/10/01(水) 21:23:56 ID:???
>>524
誰?
526nobodyさん:2008/10/01(水) 22:26:04 ID:3YFA2aVn
524=519です。

strip_tagsでやると顔文字とかが消えることがあるということなんですが
うまく回避できるようなものはないでしょうか?
許可タグは <blink> <hr> <marquee> <font> <div> <a> <br> だけです
527nobodyさん:2008/10/01(水) 22:47:29 ID:???
一旦そのタグだけ別の文字に変換
タグすべて排除
変換を復帰
でいいんじゃね?
528nobodyさん:2008/10/01(水) 22:57:13 ID:???
>>526
>>492じゃなんでだめなの?
529nobodyさん:2008/10/01(水) 23:14:21 ID:3YFA2aVn
みおとしてました。 見てみます。。
530nobodyさん:2008/10/02(木) 09:25:56 ID:???
test
531nobodyさん:2008/10/02(木) 13:41:16 ID:BKOS1nt/
http://ww7.tiki.ne.jp/~inabah/php/002_004.htm

いまWEB上の解説を見てるんだが、これってまちがってるよね?

$a = 10;
$b = $a;
$c = &$a; // 参照渡しによる代入
$a = 20;

print "$a = $a<br>"; // $a の値は当然 20
print "$b = $b<br>"; // $b の値は 10 のまま
print "$c = $c<br>"; // $c の値は 20 になっている
532nobodyさん:2008/10/02(木) 14:24:40 ID:???
参照の説明としてなら、合ってる

出力は 10=10 みたいになるがな
533nobodyさん:2008/10/02(木) 15:01:45 ID:???
サブルーチン作るときに、
定義するときも、
呼び出すときも、

()

って絶対つけないとだめなの?

perlだったらつけなくてもよかったんだが。
534nobodyさん:2008/10/02(木) 15:32:33 ID:BKOS1nt/
質問

http://ww7.tiki.ne.jp/~inabah/php/004_004.htm

ここのページみて、

<?php
print "ここは元のファイルから書かれています。<br>\n";
include 'http://www.php.gr.jp/';
print "<br>ここも元のファイルから書かれています。<br>\n";
?>

これをやってみたんだが、
(インターネット上にあるファイルを読み込んでくる処理ね)

Warning: include() [function.include]:
URL file-access is disabled in the server
configuration in C:\xampp\htdocs\php\6.php on line 3

というエラーが出る。グーグルでエラーメッセージを検索して

https://www.google.com/adsense/support/bin/answer.py?hl=jp&answer=70494
「PHP サーバーの設定内の allow_url_fopen と allow_url_include を有効にしてください。」

という記述を見つけて、その通りにした。
しかし、エラーがまだでる。

なぜ?
535nobodyさん:2008/10/02(木) 15:58:11 ID:BKOS1nt/
xampp1.6.8のバグなのかな、、、

\xampp\apache\bin\php.ini

↑これを編集して、
ちゃんと
allow_url_fopen と
allow_url_include を有効にしたんだが、

php.infoを見ると
allow_url_include Off
になってる。あれ?と思って

C:\xampp\php\php.ini

を見たら、書き換わってない。

allow_url_include=offになってる。

\xampp\apache\bin\php.ini

を書き換えたら、その設定が自動的に

C:\xampp\php\php.ini

に反映されるのではないのか?
536nobodyさん:2008/10/02(木) 16:13:53 ID:BKOS1nt/
自己解決した。
アパッチのhttpd.confに
PHPIniDir C:/xampp/php/php5.ini
って書いて、上書き保存して、アパッチを再起動したら
動いた。

PHPスイッチを使ったら、
C:/xampp/php/php5.ini
ってファイルができたので、それを強制的に
指定したらうまくいった。
537nobodyさん:2008/10/02(木) 16:19:43 ID:BKOS1nt/
xamppなんだけど、
php.iniの読込先の指定は、
アパッチのhttpd.confに

PHPIniDir C:/xampp/php/php5.ini

と書く、
このやり方でいいの?

php5.iniはPHPスイッチを使ったら自動で生成された。
オリジナルのファイルは
\xampp\apache\bin\php.ini
を見ているとおもう。そのファイルを自動でコピーして
生成したみたいだ。
538nobodyさん:2008/10/02(木) 16:48:14 ID:BKOS1nt/
>>537
は自己解決した。
どうやら設定を間違えていたようだ
アパッチのhttpd.confに設定するのは
PHPIniDir C:\xampp\apache\bin\php.ini
こっちが正解だったようだ。
539nobodyさん:2008/10/02(木) 17:31:01 ID:BKOS1nt/
原因がわかった。
以前、自力で単独でインストールしていた
PHPがあって、その設定がレジストリに残っていた。
修正方法は、PHPをアンインストールして、
regeditでその該当のキーをxamppのものに
変更して、Windowsをシャットダウンしてコールドブートしたら
反映された。

参考URL
http://ajiblog.sblo.jp/archives/200802-1.html
php.iniの設定が反映しない
デフォルトでは以下のphp.iniが使用されます。
c:\xampp\apache\bin\php.ini

しかし、手動でPHPを一度インストールして、その後にxamppをインストールした場合、
読み込まれるphp.iniの位置が以前のままになっている場合があり、この場合php.iniを
変更しても設定が反映されないという現象が起こります。

原因は、古いphp.iniファイルのパス指定がレジストリに残っていることです。新しい
php.iniのパスに変更するにはregedit.extを起動し、"php.ini”で検索して書き換
可能です。

例. 以前、C:\PHPにインストール、php.iniのデフォルトパスが c:\PHP\php.ini の場合
キー: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersionInstaller
\UserData\S-1-5-18\Components\7226D23B061375D47942B053CD215891
\00000000000000000000000000000000
値: C:\PHP\php.ini
これを xamppのデフォルトに合わせて "c:\xampp\apache\bin\php.ini" などに変更して
apacheを再起動すすれば反映されるようになります。
-----------------------------
なお、レジストリを変更したばあい、windowsの再起動が必要になります。
540nobodyさん:2008/10/02(木) 17:34:03 ID:???
>>533
perlperlうるせえな
お前がやってんのはphpだろ
どの言語も仕様が一緒だと思うなよタコ
言語的にはperlもphpも異端なんだよ
541nobodyさん:2008/10/02(木) 18:17:59 ID:???
>>539
糞レス垂れ流すな。
そんなんで詰まるなら最初からxampp使うな
542nobodyさん:2008/10/02(木) 19:30:47 ID:???
ちょと質問

echo strlen ("亜w背drtfgyふじこlp;@:「」");

この文字列は36byte なのに返り値は 53 と出力される不思議。
strlen の数えている文字数って何?
文字列のバイト数を得たいんだけど使い物にならないという ('A`)
文字コード? でもUTF8で書いてるんだけどな・・・
543nobodyさん:2008/10/02(木) 19:32:38 ID:???
>この文字列は36byte なのに

その根拠は何だ。まさか全角文字列が全部2byteとか思ってないだろうな。
544nobodyさん:2008/10/02(木) 19:47:23 ID:???
>>542
ユニコードの場合、一文字3バイトとか
普通にありうる。

しかも”(だくてん)も一文字としてカウントされるので、
たとえば

「が」

は、
「か」+「”」
(か+だくてんのちょんちょん)

と解釈されるので、
3バイト+3バイト=6バイト
とか普通にありうる。それがユニコード。
545nobodyさん:2008/10/02(木) 19:56:12 ID:???
>>543 >>544

d
俺がヴァカですた orz
546nobodyさん:2008/10/02(木) 20:16:40 ID:???
>>544

> 「か」+「”」
> (か+だくてんのちょんちょん)
>
> と解釈されるので、

知ったかレスうざい。
547nobodyさん:2008/10/02(木) 21:16:12 ID:???
utf-8はstrlenじゃなくてmb_strlenつかえ
548たま ◆ExGQrDul2E :2008/10/03(金) 03:41:27 ID:hbK/EmaX
PHP proxyのチェック
プロ串をチェックするため、こんな関数を使っています。



$HTTP_CONNECTION = $_SERVER["HTTP_CONNECTION"];
$HTTP_REFERER = $_SERVER["HTTP_REFERER"];
$HTTP_USER_AGENT = $_SERVER["HTTP_USER_AGENT"];
$HTTP_CLIENT_IP = $_SERVER["HTTP_CLIENT_IP"];
$HTTP_FORWARDED = $_SERVER["HTTP_FORWARDED"];
$HTTP_IF_MODIFIED_SINCE = $_SERVER["HTTP_IF_MODIFIED_SINCE"];
$HTTP_MAX_FORWARDS = $_SERVER["HTTP_MAX_FORWARDS"];
$HTTP_PROXY_CONNECTION = $_SERVER["HTTP_PROXY_CONNECTION"];
$HTTP_SP_HOST = $_SERVER["HTTP_SP_HOST"];
$HTTP_TE = $_SERVER["HTTP_TE"];
$HTTP_VIA = $_SERVER["HTTP_VIA"];
$HTTP_X_FORWARDED_FOR = $_SERVER["HTTP_X_FORWARDED_FOR"];
$HTTP_X_LOCKING = $_SERVER["HTTP_X_LOCKING"];
$HTTP_XONNECTION = $_SERVER["HTTP_XONNECTION"];
$HTTP_XROXY_CONNECTION = $_SERVER["HTTP_XROXY_CONNECTION"];

しかし、携帯版の最強な串
http://sv0436.dc01.axelmark.net/
でアクセスした場合。何一つproxyの環境変数を吐かないため、弾きようがありません。他にもproxyを示す決定的な環境変数があるのでしょうか?
549nobodyさん:2008/10/03(金) 04:06:16 ID:???
それに限らず環境変数吐かないproxyは検出しようがない
550たま ◆ExGQrDul2E :2008/10/03(金) 04:14:44 ID:hbK/EmaX
>>549
携帯で
http://sameha.net/
にアクセスしてください。
拒否されているのですよ...
どうやっているのでしょうか...
551たま ◆ExGQrDul2E :2008/10/03(金) 04:15:43 ID:hbK/EmaX
携帯でとういうのは、携帯で串を経由して
という意味です。
わかりにくくてすいません。
552nobodyさん:2008/10/03(金) 04:28:08 ID:???
逆引きできるか調べて見れ
553nobodyさん:2008/10/03(金) 04:47:08 ID:agLBvyd6
掲示板のログを保存する場合、データベースを使う方法と、
テキスト形式のログファイルに書き込む方法があると思いますが、
両者の利点、欠点は何ですか?
554nobodyさん:2008/10/03(金) 04:49:20 ID:???
ぐぐれば一瞬で分かんだろ
555nobodyさん:2008/10/03(金) 04:50:44 ID:???
>>553
ファイル形式に保存する場合は、容量はOSの制限を受けるため、
上限が生じるのが欠点ですが、速度が速いのが利点。

逆に、データベースに保存する場合、容量が2PB(2PTとは2000TBのこと)と実質上容量の制限が
ないのが利点ですが、速度が遅いのが欠点かな。
556553:2008/10/03(金) 05:08:55 ID:???
>>555
素早く、かつ大変ご丁寧なレスをありがとうございます。
ポイントは「速度」と「ファイルの容量」なのですね。

ということは、例えば「1月の書き込み」「2月の書き込み」…などと
ファイルを分けて保存すれば、1つ1つのファイルの容量は大きくならないので、
ファイル形式で十分ということでしょうか?

(正直、データベースの使い方がよく分からないので、
ファイル形式で良ければそれで済ませたい、という思いから質問させていただいてます)
557nobodyさん:2008/10/03(金) 05:13:16 ID:???
一度DB使ったらログファイルなんて使ってらんないな
558nobodyさん:2008/10/03(金) 05:20:21 ID:???
>>556
いいえ違います。
DBは膨大なデータを扱うことを想定して設計されているので、
データが多くなれば多くなるほどDBのほうがデータの検索速度は高速です。
ファイルの場合、ファイルシステムにもよりますが、データの検索速度はDBに比べ低速です。
またファイルの場合、効率的に読み込む手段が用意されていない言語の場合、
データが多くなると読み込みだけで時間を要します。
ファイルの利点はSQLを必要としないことぐらいです。
これはSQLを覚える必要がないのと、
SQLインジェクション等のSQL特有の攻撃を意識しなくてすむことぐらいです。
特段理由がなかったらDBを使うべきです。
559553,556:2008/10/03(金) 05:42:13 ID:???
>>558
分かりやすいレスでとても感謝しています。
DBの利点がよく理解できました。

今日からDBを勉強することにします。
どうもありがとうございました。
560nobodyさん:2008/10/03(金) 06:07:45 ID:???
>>558
2chがどうして、DBを使っていないのか、そこからお勉強しましょう。
明らかに経験不足です。
561553:2008/10/03(金) 06:21:24 ID:???
>>560
すみません、>>559で書き込んだ手前、質問しにくいのですが、
理由を教えていただけますでしょうか?簡単で構いませんので・・・。
2chはdatファイル(=テキストファイル?)ですよね。

また、検索や読み出し(ログの表示)をあまり必要としない場合は、
データベースの利点は少ないということでしょうか?
562nobodyさん:2008/10/03(金) 07:32:23 ID:???
>>561
2chがどうして、DBを使っていないのか、そこからお勉強しましょう。
明らかに経験不足です。
563nobodyさん:2008/10/03(金) 08:00:21 ID:???
>>562
2chってDB管理だと思ってた
専ブラで取得しやすいようにdatでも見れるようにしてるのかと・・・
564nobodyさん:2008/10/03(金) 08:03:43 ID:???
DBは「有能な協力者を1人雇う」と考えればいい。
便利だが、いろいろ気遣いも必要になる。

datファイルの場合は、少し心細いが好きなようにやれて小回りがきく。
565nobodyさん:2008/10/03(金) 08:27:22 ID:???
>>562
どうみても経験不足はあなたです。
本当にありがとうございました。
2chがどうしてDBを使ってないのか説明してみw
566nobodyさん:2008/10/03(金) 08:43:29 ID:???
>>565
てめぇの馬鹿さ加減には、父ちゃん情けなくて涙が出てくらぁ
567nobodyさん:2008/10/03(金) 08:45:08 ID:???
>>566
ごめんね馬鹿なのw
だからどうして2chがDB使ってないか説明してよw
568nobodyさん:2008/10/03(金) 08:50:18 ID:???
>>567
2chがどうして、DBを使っていないのか、そこからお勉強しましょう。
明らかに経験不足です。
569nobodyさん:2008/10/03(金) 08:51:33 ID:???
ルールを守ってない時点でお前は質問者じゃない。ただの玩具。
570nobodyさん:2008/10/03(金) 08:54:42 ID:???
>>582
2chは負荷かかるし検索機能とかないだろ
ただ書き込んで表示してるだけ
ようするに掲示板につける機能によりけり
2chの話を出すのはマヌケ
あとあと掲示板にいろいろな機能を持たせたいのなら
最初からDBで設計しておいたほうがいい
2chは速さを追求した結果前時代的なシステムで拡張が困難
571nobodyさん:2008/10/03(金) 08:55:44 ID:???
>>582に期待
572570:2008/10/03(金) 08:57:51 ID:???
>>562
顔洗ってくる
573nobodyさん:2008/10/03(金) 09:05:34 ID:???
>>570
色々とピント外れだな。

> 2chは負荷かかるし検索機能とかないだろ
冒頭から間違っているし。
574nobodyさん:2008/10/03(金) 09:13:45 ID:???
>>561
DBに興味があるならやってみなよ
両者の比較なんて大規模システム運用するわけじゃないんだから
パフォーマンスに目に見える差異は出てこない
ファイルは専用の関数だけ覚えれば扱えるけど
DBはいろいろ覚えることがあるから
どういうものか触れて勉強するのもいいと思う
Rapid開発になるとフレームワークを使うようになるし
そうするとDBが必須になってくるからね
慣れれば高速に開発できるのもDBの利点

>>573
だって無いだろ
575nobodyさん:2008/10/03(金) 09:21:00 ID:???
> 2chは負荷かかるし検索機能とかないだろ
冒頭から間違っているし。
> 2chは負荷かかるし検索機能とかないだろ
冒頭から間違っているし。
> 2chは負荷かかるし検索機能とかないだろ
冒頭から間違っているし。
> 2chは負荷かかるし検索機能とかないだろ
冒頭から間違っているし。
576nobodyさん:2008/10/03(金) 10:09:02 ID:???
2chは負荷かからず、検索機能とかがある説が急上昇
577nobodyさん:2008/10/03(金) 10:16:28 ID:???
find.2ch.net
578nobodyさん:2008/10/03(金) 10:22:59 ID:???
>>577
何ゆえにPHP版を
579nobodyさん:2008/10/03(金) 10:29:20 ID:???
>>577
投稿をDBにいれるのと、
検索エンジンがインデックスをDBに作るのとはまた別の話だろ
580nobodyさん:2008/10/03(金) 10:32:24 ID:???
>>579
誰も同じ話とは言っていないような???
581nobodyさん:2008/10/03(金) 10:33:20 ID:???
>>576
しまいにはDB使わずナマズさん使ったほうが速いお
とか言いだしそうだな(わらう)
582nobodyさん:2008/10/03(金) 10:37:06 ID:???
>>579
find.2ch.netがDBかどうかなんて話してないだろw
583nobodyさん:2008/10/03(金) 10:49:34 ID:???
ひろゆきや狐やrootがDB分かんないからログファイルなんじゃね
584nobodyさん:2008/10/03(金) 10:55:46 ID:???
>>583
お前は本当にその3人だけでやってると思ってんのか?
ってか、ひろゆきはDBわかるだろ
585nobodyさん:2008/10/03(金) 11:45:30 ID:???
ドラゴンボールが何だっての?
586nobodyさん:2008/10/03(金) 11:58:56 ID:/eEzlvvL
ディレクトリ構造?ってどうしてますか
phpファイルを機能別に分けたりしてますか?
587nobodyさん:2008/10/03(金) 12:20:21 ID:???
好きにしろ
588nobodyさん:2008/10/03(金) 15:56:15 ID:xSW6clzh
すみません。普通のPHPファイルとAjaxの部分とで同じSESSION変数を使いたいんですが、
データの整合性とか、大丈夫ですか?
589nobodyさん:2008/10/03(金) 16:06:53 ID:rpr6AsK7
PHPからMySQLに格納すると文字化けするので、コネクトするたびに、
$sql = "SET NAMES utf8";
$result = mysql_query($sql);
とクエリを投げるようにして、とりあえず解決したのですが、
あまりスマートじゃないですよね?

上のPHP2文がある/無い で、文字化けする/しない という結果になるんですが、
この結果から、どの部分で文字コードがおかしくなっているのか予想ってできますでしょうか?
590nobodyさん:2008/10/03(金) 16:21:01 ID:???
>>589
コネクトするたびにって、、、1ページ読み込むのに何回もコネクトしてるってこと?
DBのホストを分散しているとかは別だけど、もしそうならスクリプトを1から作り直したほうがいい
それかmysqlのコンフィグを書き換えデフォをUTFにする
591nobodyさん:2008/10/03(金) 16:53:27 ID:rpr6AsK7
>>590
いや、データベースのクラスがあって、
そのクラスをnewするたびにconnectしています。

基本的に1ページには1回newして、そのオブジェクトを使うので、
1ページ=1connectです。

PHPのファイルがUTF-8で、my.cnfの設定もUTF-8に統一している
(コンソールからMySQLにつないで、statusで確認済み)のですが、
あと文字コードに関わる部分ってどこがあるでしょうか?
592nobodyさん:2008/10/03(金) 17:13:26 ID:???
>>591
クラスにしているなら特にSET NAMEを複数書く必要もないしスマートだと思うけど
格納するクエリが文字化けしてなく、格納した時にすでに文字化けしているなら他に原因は思いあたらない
593nobodyさん:2008/10/03(金) 18:08:56 ID:???
>>588
javascriptはアクセス先のPHPへ同じセッションIDを通知するから、
ページ全体を表示する際に生成したセッションと同一と言える
594nobodyさん:2008/10/03(金) 18:10:44 ID:???
>>591
何にせよmysql側で対応したいなら、
MySQL「サーバ」とMySQL「クライアント」の文字コードを統一しないとな
PHPの文字コードじゃないから注意だぞ(PHPからMySQLクライアント(ドライバ)に渡る際に変換されるから)
595nobodyさん:2008/10/03(金) 18:38:33 ID:???
>>589
その説明は、俺がmy.cnfの設定方法を含めて前レスで詳しく説明したから、
それを見てくれ。
596211:2008/10/03(金) 19:14:51 ID:XpYjXbv/
もう誰も興味ないと思いますが・・・というか、結果的にかなり場違いな
質問でしたが、一応解決したので書いておきます。
結果的には oci8.so をユニバーサルバイナリにしてみたら動きました。
理由は説明できないので聞かないでください。

最初に書かないといけなかったような気がしていますが、環境は、
$ uname -a
Darwin macbook.example.com 9.5.0 Darwin Kernel Version 9.5.0: Wed Sep 3 11:29:43 PDT 2008; root:xnu-1228.7.58~1/RELEASE_I386 i386
です。

いろいろ試行錯誤していて、以前指摘された "DYLD_PRELOAD"に相当する
ものは"DYLD_INSERT_LIBRARIES"ではないかと思い、試していると、
$ export DYLD_LIBRARY_PATH=/usr/local/instantclient_10_2
$ php ocitest.php
(成功)
$ /usr/sbin/httpd
dyld: could not load inserted library: /usr/local/instantclient_10_2/libclntsh.dylib.10.1

Trace/BPT trap
こうなりました。全然理解できませんが。

ユニバーサルバイナリにしたら良いかもと勝手に思い、
$ pecl bundle oci8
$ CFLAGS='-arch i386 -arch x86_64 -arch ppc -arch ppc64' LDFLAGS='-arch i386 -arch x86_64 -arch ppc -arch ppc64' ./configure --with-oci8=instantclient,/usr/local/instantclient_10_2 --disable-dependency-tracking
$ sudo make install

これで試したらすんなり動きました。
おわり。
597211:2008/10/03(金) 19:23:49 ID:XpYjXbv/
>>596
途中一行抜けてました。
$ export DYLD_LIBRARY_PATH=/usr/local/instantclient_10_2
$ export DYLD_INSERT_LIBRARIES=/usr/local/instantclient_10_2/libclntsh.dylib.10.1
$ php ocitest.php

あと、せっかくなのでちょっと追記。
$ file oci8.so
oci8.so: Mach-O universal binary with 4 architectures
oci8.so (for architecture i386): Mach-O bundle i386
oci8.so (for architecture x86_64): Mach-O 64-bit bundle x86_64
oci8.so (for architecture ppc7400): Mach-O bundle ppc
oci8.so (for architecture ppc64): Mach-O 64-bit bundle ppc64
$ file oci8.so.orig (動かなかったoci8.so)
oci8.so.orig: Mach-O bundle i386
$ file libclntsh.dylib.10.1
libclntsh.dylib.10.1: Mach-O dynamically linked shared library i386
598nobodyさん:2008/10/03(金) 19:25:49 ID:???
自分のblogに書いといてくれ
599nobodyさん:2008/10/03(金) 19:26:25 ID:???
ごくろうさん
600211:2008/10/03(金) 20:00:31 ID:XpYjXbv/
すみません。。。
http://pc11.2ch.net/test/read.cgi/mac/1216824430/
に似たような事例があって、いくつかわかりました。
標準でインストールされている httpd は x86_64 で動作しているようです。
アクティビティモニタ上で "Intel (64ビット)" と表示されていました。

で、oci8.so はユニバーサルバイナリにすることでロードされましたが、
その中で使っている libclntsh.dylib は i386 のバイナリしかないわけで
ocitest.php をapacheに実行させたら Trace/BPT trap で失敗してました。。。

なかなか上手くいかないもんだのう。。。
601nobodyさん:2008/10/03(金) 20:28:26 ID:???
嫌がらせか
602588:2008/10/03(金) 21:05:21 ID:???
>>593
どうも同一のセッションIDを送ってくれるので、大丈夫ということを知り安心しました。

回答つかないかと思ってあせってたんです(;´д`)

本当にありがとうございました。助かりました。
603nobodyさん:2008/10/03(金) 22:38:52 ID:19ebb2MR
$array[0]["name"]
$array[1]["name"]
$array[2]["name"]

となっている配列があったとして、
nameの中が空の場合、その配列を削除したいと思っています。
ひとつずつIFで条件分岐する以外で方法はないでしょうか?
604nobodyさん:2008/10/03(金) 23:42:28 ID:???
機能別にすることもあるし分けないこともある。
本体とログとかさらにいくつもファイル複数あるなら分けたほうがいい気はする。
605nobodyさん:2008/10/03(金) 23:58:50 ID:???
>>603
なさげ。
普通にif文でやってください。
で、ついでに配列に格納する段階でどうにかするという方向性でいったら?
606nobodyさん:2008/10/04(土) 00:02:17 ID:qepvww6d
フレームワーク使ってるかってどうやってわかるんでしょうか?
607nobodyさん:2008/10/04(土) 00:25:18 ID:???
>>606
デフォルトのまま使えば特徴は出るがそんなのはいくらでも隠蔽できるし
使ってる本人がこのサイトはなんたらのフレームワークで構築されてます
みたいな自己紹介してないとわからない
608nobodyさん:2008/10/04(土) 00:29:35 ID:qepvww6d
>>607
なるほど。 ご回答ありがとうございました
609nobodyさん:2008/10/04(土) 09:35:14 ID:???
どうしてもモジュール単位でクラス化していくと、
require_onceの数が多くなってしまいます。
ファイルをインクルードするためのオーバーヘッドは気にしなくて大丈夫でしょうか?

610nobodyさん:2008/10/04(土) 11:25:40 ID:???
>>609
ファイル数が多いならrequire_onceよりrequireを。
onceは重複チェックの分オーバーヘッドがrequireよりありんす。
611nobodyさん:2008/10/04(土) 16:11:14 ID:???
mailって内部的には、sendmailを起動している、って
WEBの解説ページに書いてあったんだけど、
それってUNIX環境だけだよね?

Windowsでは、起動しているメールサーバーソフト(mercuryとか)を
使って送信してるんだよね?
612nobodyさん:2008/10/04(土) 16:23:54 ID:qMLHDr64
http://wink.pncn.net/server/php_mail.php

ここに、

「あとは、Apacheを再起動します。そうしないとphp.iniの設定内容が反映されません。」

って書いてあるけど、php.iniは
別にアパッチを再起動しなくても設定の変更は
反映されるよね?
613nobodyさん:2008/10/04(土) 16:29:09 ID:???
>>612
モジュール版のPHPはApache起動と同時にPHPも内部的に稼動させるから、
Apache起動時点でのiniになる、だから変更には再起動が必要
CGI版なら、アクセス時にPHPが起動するから再起動は必要なし

614nobodyさん:2008/10/04(土) 16:56:57 ID:qMLHDr64
xamppのPHPの場合はどっちなのかな?
自分のPHPがCGI版なのか、
モジュール版なのか、
どこを見て判定するの?
615nobodyさん:2008/10/04(土) 17:28:26 ID:qMLHDr64
自己解決した。
http://oshiete1.goo.ne.jp/qa4116414.html
↑ここに書いてあった。

「phpinfo()を見る」
「ServerAPIを見る」
「Apache 2.0 Handlerとなっていたら、モジュール版」

「CGIとなっていたら、CGI版」
616nobodyさん:2008/10/04(土) 17:45:37 ID:???
質問スレって絶対頭おかしいやつ多いよな
質問に答えればすぐ終わることをわざわざ関係ないレスするやつ
答えにならないレスするやつのほとんどが質問してるやつがどういう答えを求めてるかがわかってない馬鹿

このPHPスレだけじゃなくてどこの質問スレも同じ
なんなんだろね?
リアルが馬鹿でどうしようもないから質問しに来たやつに対して優越感にでも浸りたいのか?w
617nobodyさん:2008/10/04(土) 17:50:17 ID:???
スレチだが、今でもレン鯖ってPHP4使ってるとこが多いよな
4のサポートもう終わってるんだし5にしてくれよと思う
618nobodyさん:2008/10/04(土) 17:53:44 ID:???
>>615
自分の入れるのがどっちなのかくらい分かってから使おうぜ・・・
>>617
運営に頼むか、そんなひどいとこは使わないのが吉。
619nobodyさん:2008/10/04(土) 18:01:54 ID:???
>>618
いや、まだまだ殆どのとこが4じゃないかな
たとえ使えてもFTP接続先が/public_html/直下だったり結構ひどいとこばかりだわ

俺の探し方が下手糞なのかもな・・・
620nobodyさん:2008/10/04(土) 18:05:36 ID:???
殆どのとこって例えばどこ?
621nobodyさん:2008/10/04(土) 18:25:57 ID:???
>>619
PHP可と書いてるところで登録してみたらPHP4だったーってのはよくあるな

>>620
いろんなとこ借りて覚えてないわ


他にはmod_rewriteが使えないとことか多いよな
622nobodyさん:2008/10/04(土) 18:27:49 ID:???
覚えてないくせに「殆どのとこがPHP4じゃないかな」とかwww
623nobodyさん:2008/10/04(土) 18:28:45 ID:???
>>671
php4でしか動かない奴も多いからな。
「ウチのblogが急に動かなくなった、どうしてくれる!」とか
クレームが来ること考えるとそう簡単には切れないべ。
624nobodyさん:2008/10/04(土) 19:02:55 ID:qMLHDr64
http://lh.gamesns.jp/cap.php?rand=9844254
これってどうやるの?
625nobodyさん:2008/10/04(土) 19:12:43 ID:???
captchaでググれ
626nobodyさん:2008/10/04(土) 21:02:35 ID:Ac3kpf8k
簡易的なアクセス解析プログラムを作っています。
HTMLファイルからimgタグでtest.phpを読み込み、
そこで訪問者のログを取っています。
(<img src="./test.php?page=top" />←こんな感じです)

その時test.phpでは
header("Content-length: " . filesize('./dammy.gif'));
というように1px×1pxの画像を出力しているのですが、
画像を出力しないで済む方法はないでしょうか?

アクセスログの取り方はimgタグでやりたいと思っています。
分かる方いらっしゃればお願いします。
627nobodyさん:2008/10/04(土) 21:04:14 ID:???
ページをphpで作ればいいじゃん
628626:2008/10/04(土) 21:34:46 ID:Ac3kpf8k
>>627
ページは原則的に静的という縛りがあります、すみません。
629nobodyさん:2008/10/04(土) 21:35:45 ID:???
なぜに?
あと画像を出力したくない理由は?
どうでもいいことは書いてるけど必要な情報が足らん
630626:2008/10/04(土) 22:01:56 ID:Ac3kpf8k
>>629
アクセス解析のプログラムはフリーで配布する目的でして、
手間がかからないよう静的ページからでもOKにしたいのが理由です。

>画像を出力したくない理由は?
特に大きな理由はありません。
ただbodyタグ内のどこにimgタグを突っ込んでもデザインが崩れなければ最高だと思いまして。
情報の後出し申し訳ないです。
631nobodyさん:2008/10/04(土) 22:04:33 ID:???
>>630
やったことないけど
JavaScriptとしてPHPで読み込んでみてはどうかな?

<script type="javascript" href="./test.php?page=top"></script>
632626:2008/10/04(土) 22:19:45 ID:Ac3kpf8k
>>631
ありがとうございます、解決しました!
なぜかhrefをsrcに変更したところ動作しました。
javascriptでphpを呼べるんですね。
ホントにありがとうございました。
633nobodyさん:2008/10/05(日) 05:46:20 ID:???
たんに>>631のhtmlのミスだな
まぁそこはどうでもいいか
634nobodyさん:2008/10/05(日) 12:36:18 ID:???
>>626
jsでするみたいだからどうでも良い話にはなるが
1x1のサイズだとbase64エンコードして出来た文字列を内部に持たせる方が楽だぞ
635nobodyさん:2008/10/05(日) 19:21:16 ID:BsaGVD4F
PHPの世界で
「PHPマニュアル」
っていったら、
なにか公式のものがあるの?

ようは固有名詞になってるの?
636nobodyさん:2008/10/05(日) 19:27:23 ID:???
テンプレ読まないやつは帰っていいよ
637nobodyさん:2008/10/05(日) 19:38:09 ID:BsaGVD4F
http://w1.nirai.ne.jp/freeze/appli/file01.html

ここに書いてあるんだけど、

「6の項目は実現できませんでした。なぜうまく行かなか
ったかと言うと、ブラウザのキャッシュが大きな壁だった
のです。同じ画面にするとどうしても再読込あるいは次
の投票を行わないと反映されないのです。ある程度対応
策があるのですが、サーバー側のプロキシ(?)の問題も
あるようで100%は無理みたいですね。あちこちで見られる
アンケートもほとんど2画面ですからね。」

って書いてあるのだが、PHPでやる場合、
基本的に2画面設計にするのが業界の主流なの?
638nobodyさん:2008/10/05(日) 19:47:25 ID:BsaGVD4F
http://www.php.net/manual/ja/

PHPマニュアルってこれか?
まさかおまえら、これ全部読んだの?
639nobodyさん:2008/10/05(日) 21:25:33 ID:BsaGVD4F
10人で同時にプレイする
CGIゲームのテストって
ローカルでは限界があるのか?
640nobodyさん:2008/10/05(日) 21:28:43 ID:???
いや別に?
641nobodyさん:2008/10/05(日) 21:29:17 ID:BsaGVD4F
http://www.sound-uz.jp/php/note/basicPhp

ここ読んだら、

[ステップ2] サーバにアップロードする

「今書いたPHPスクリプトファイルを、FTPソフト
でサーバのブラウザでアクセスできるところにア
ップロードします。CGIのようにパミッションを設定
する必要はありません。」

って書いてあるんだけど、本当にパーミッションを
設定する必要はないの?
642nobodyさん:2008/10/05(日) 21:32:21 ID:???
CGI版で使うならある
643nobodyさん:2008/10/05(日) 21:40:38 ID:???
PHPスクリプトにファイル作成をさせたりするなら、必要になることも。
644nobodyさん:2008/10/05(日) 21:49:03 ID:BsaGVD4F
なんで、Apacheモジュール版のことを、DSO版って呼ぶの?
645nobodyさん:2008/10/05(日) 21:51:45 ID:???
ApacheのDSOって仕組み使ってるから
646KillYouHag ◆KillYouHAg :2008/10/05(日) 22:12:26 ID:???
|(-_-)|
647nobodyさん:2008/10/06(月) 00:22:36 ID:szIkgH26
PHPの解説ページ見てると、ほぼ全部が
mysqlと連携させましょう!ってなってるけど、別にsqlliteでも
いいんだよね。
648nobodyさん:2008/10/06(月) 00:25:50 ID:???
もち。sqliteはまだ新しいので、解説が少ないだけ。
649nobodyさん:2008/10/06(月) 00:44:53 ID:???
>>638
必要になったら読むに決まってるだろ
君はセンスがなさそうだから他のことやったほうがいいよ
650nobodyさん:2008/10/06(月) 12:20:44 ID:HtdN4tAq
ファイルでX行目の内容だけ変えたりという処理を実装したいのですが、すべての行を読み込まなくてはできないでしょうか?
たとえば100行あって5行目hogeをfugaに変えるだけの時はどんな処理が一番いいですか?
下のようなものしか思いつきません。

$list = explode("\n",$file);
$list[4] = "fuga";
$file = implode("\n",$list);
651nobodyさん:2008/10/06(月) 12:23:04 ID:???
そのファイル何MBなの?
652nobodyさん:2008/10/06(月) 12:27:22 ID:HtdN4tAq
>>651
ありがとうございます。
ログのようなもので簡単に言うと2chのsubect.txtっぽいものです。
10M以下です。
653nobodyさん:2008/10/06(月) 12:33:17 ID:???
じゃ気にしなくておk
654nobodyさん:2008/10/06(月) 12:47:45 ID:???
>>652
今後デカくなる可能性もあって、気になるというなら
ループとfgetsで対象の行まで処理してもいいかもな
無駄なループが出るが、ファイル全体を取り込む際のオーバーヘッドと比べて要相談
655nobodyさん:2008/10/06(月) 13:40:08 ID:szIkgH26
http://php.dori-mu.net/tips.html

↑ここに、

「効果的にデバッグしたい
最近PHPをはじめた方の為に、効果的なデバッ
グの方法をこっそりお教えします。

統合開発環境がいまだ無いPHPのデバッグで
は、要所要所で変数の値をprintされている人
が多いと思います。」
-----------------------------------------

、、、って書いてあるけど、これって古い情報?
まだIDEってないの?
656nobodyさん:2008/10/06(月) 13:45:05 ID:???
そんな鴨を釣るための方便
657nobodyさん:2008/10/06(月) 14:18:23 ID:???
IDEならPDTやaptanaがあるじゃん、釣られんなよ
しかも「PHP4は早いんです!」・・・ワラタ
PHP5の影もない頃の記事だな
658nobodyさん:2008/10/06(月) 16:19:40 ID:/7mWgEQF
勉強の為にフリーで配布されてるソースを拾ってきて
自分なりに解読しているのですが、その中であまり見かけない
記述を見つけたので何をしているか教えてもらえませんか

クラスの中に
$this->$kw($val);
と記述がありました。
659nobodyさん:2008/10/06(月) 16:27:05 ID:???
質問。
--------------------------
<html>
<form action="output.php" method="post">
<input type="text" name="a"></td>
</form>
<?php
$c = $_POST['a'];
print ("$c");
?>
</html>

-----------------------------------------
↑このコードなんだが、
入力フォームの画面がoutput.phpで、
そこから渡される変数を受け取って、
処理をして画面に出すファイルも、同じく
output.phpなんだが、こういう、入力ファイルと、
出力ファイルが一緒、って、なんか気持ち悪いんだが、
2つのファイルに分ければすっきりすると思うんだが、

(入力が1.htmlで、出力が2.phpとか)

RFC的に、っていうか、なんか規約とかガイドラインとかで
決まってたりしないの?
「同じファイルで入力と出力を混ぜるな」とか。
660nobodyさん:2008/10/06(月) 16:30:53 ID:???
661nobodyさん:2008/10/06(月) 16:33:21 ID:krVoA8nH
>>659
$_SERVER['PHP_SELF']があるくらいだし、
1つのファイルでやるのはよくあるかと

てかhtmlの書き方がめちゃくちゃな気が…
662658:2008/10/06(月) 16:36:38 ID:/7mWgEQF
>>660
ありがとうございます
ただそのあたりは理解してるつもりです。

分らないのは
$this->$wk($val);
の部分の"->$"でアローの後の$が何なのかということなのです
663658:2008/10/06(月) 16:39:49 ID:/7mWgEQF
自己解決
可変ね

お騒がせしました
664nobodyさん:2008/10/06(月) 16:41:22 ID:???
急に態度でかくなってワロタ
665nobodyさん:2008/10/06(月) 16:53:21 ID:???
>>659
「んだが」使いすぎ。
666nobodyさん:2008/10/06(月) 16:58:10 ID:???
そこにツッコむとは通だな
6672ch偽”管理”人 ◆2ch.net/cU :2008/10/06(月) 17:45:16 ID:???
(´・ω・`)

何げに神酉
668nobodyさん:2008/10/06(月) 17:50:47 ID:???
>>662
スカラー変数じゃない?
669nobodyさん:2008/10/06(月) 17:53:03 ID:???
>>668
いや、明らかな可変関数ですが
670nobodyさん:2008/10/06(月) 17:58:49 ID:szIkgH26
http://zen-cart.jp/bbs/viewtopic.php?f=2&t=3974
ここみたら、xreaって
register_globalsがOn
みたいなんだけど、バカなの?死ぬの?
671nobodyさん:2008/10/06(月) 18:01:42 ID:???
古いサーバでしょ
672nobodyさん:2008/10/06(月) 18:07:18 ID:J8jNqfv3
http://screenshots.jp/

↑こういうウェブサービスを自作したいと思います。

任意のページをブラウザで表示させ、そのスクリーンショットを取得し、
サイズや解像度を調整しサムネイルに加工するというものです。

これはレンタルサーバ(XREA)+PHPで可能でしょうか?

PHPで無理なのであれば、どのような言語やツールを利用すればよいですか?
673nobodyさん:2008/10/06(月) 18:10:46 ID:???
先が思いやられる・・・
674nobodyさん:2008/10/06(月) 18:15:43 ID:???
>>バックエンドにXやらwinやらがないと出来ん
エンジンだけで正確なキャプチャは取るのは神業だからな
675nobodyさん:2008/10/06(月) 18:46:29 ID:J8jNqfv3
>>674

ありがとうございます。

やはり自宅サーバ立てるのが近道なんですかね。
でも管理コストが・・・。
676nobodyさん:2008/10/06(月) 19:13:23 ID:szIkgH26
おまいらHTMLエディター、何使ってる?
677nobodyさん:2008/10/06(月) 19:15:46 ID:???
なぜPHPは除外?
678nobodyさん:2008/10/06(月) 19:22:34 ID:???
>>676
メモ帳
679nobodyさん:2008/10/06(月) 19:25:24 ID:???
メモ帳
680nobodyさん:2008/10/06(月) 19:29:27 ID:???
メモ帖
681nobodyさん:2008/10/06(月) 19:49:37 ID:???
getで、
.php?id=123456
みたいなのじゃないくて

2chのスレみたいに

read.cgi/php/1221909788/l50←ここ

を受け取りたいんだけど、これ出来ない?
682nobodyさん:2008/10/06(月) 19:52:09 ID:???
>>1
683nobodyさん:2008/10/06(月) 19:53:22 ID:???
>>659
どっちもできるのに何故RFCで決めなければならんのだ
684nobodyさん:2008/10/06(月) 20:02:26 ID:F1nMmuDg
あだるとびでおの編集とかにぴーえいちぴーは、つかわれていますか?
685nobodyさん:2008/10/06(月) 20:03:52 ID:???
使われていまsん
686nobodyさん:2008/10/06(月) 20:07:14 ID:rKAl3ZIy
サーセン。

【OS名】window xp
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
getで、
.php?id=123456
みたいなのじゃないくて

2chのスレみたいに

read.cgi/php/1221909788/l50←ここ

を受け取りたいんだけど、出来ないですか?
687nobodyさん:2008/10/06(月) 20:14:53 ID:???
できまsん
688nobodyさん:2008/10/06(月) 20:15:09 ID:???
テンプレ出したとこで申し訳ないがphpとは全く関係ない罠
mod_rewriteで調べてちょうだい
689nobodyさん:2008/10/06(月) 20:20:32 ID:szIkgH26
いままでHTMLエディタは TTTエディタを使っていたんだが、
こんどPHPを勉強することになって、
文字コードはかっこよく、utf-8で統一しようと思ったんだけど、
今しらべてみて、なんと、ttteditはユニコードでのファイルの保存が
できないことが判明。いまどきそれはないわな。

てなわけで、ttteditを捨てることに決定。

で、ttteditみたいなエディターで、イマドキなの、一個
紹介してよ。
690nobodyさん:2008/10/06(月) 20:25:34 ID:rKAl3ZIy
>>687

cgiなら出来る?
691nobodyさん:2008/10/06(月) 20:31:29 ID:rKAl3ZIy
mod_rewriteググったら解決出来そうだった。

クエリー式(/sample.cgi?a=123&b=456)
PATH_INFO式(/sample.cgi/123/456)
とか言うのね。

thx!!
692nobodyさん:2008/10/06(月) 20:41:33 ID:???
>>689
PDT
693nobodyさん:2008/10/06(月) 20:47:57 ID:???
htmlエディタとかスレ違いもいいところだろ
phpやるならIDE使えよ
htmlの色付けやコード保管機能ぐらいならどれでもついてる
ていうかhtmlなんてメモ帳で余裕ぐらいにならんと
694nobodyさん:2008/10/06(月) 20:50:32 ID:???
>>693
メモ帳wwwwwwwwww
好きに文字コードを指定して保存できる素晴らしいツールですね^^
695nobodyさん:2008/10/06(月) 20:59:52 ID:???
>>694
文字コードとかの話をしてるんじゃねえよ
htmlの色付けとか補完機能とかオマケなみたいなもんで必要ないってこと
あったほうが作業効率は早まるが覚えること少ないだろhtmlは
696nobodyさん:2008/10/06(月) 21:00:45 ID:szIkgH26
自分のイメージだと、
はhtml編集ソフト。
PHPはPHP専用のIDE

、、、て使い分けてるイメージがあったんだが、
違うの?
697nobodyさん:2008/10/06(月) 21:01:30 ID:???
ふ、甘いぜ。漢なら、Emacs で打ちこみだろう。
698nobodyさん:2008/10/06(月) 21:09:21 ID:???
俺は自社製のソフト使ってる
フローチャート書けば自動的にスクリプトにしてくれるから便利
699nobodyさん:2008/10/06(月) 21:15:32 ID:???
>>696
htmlにphpのコードを記述していくことになるから
使い分けたりしない

<?php include_once("main.php"); ?>
<html>
<head>
<?php echo $charset; ?>
<?php echo $title; ?>
</head>
<body>
<p>こんばんわ!<?php echo $name; ?>さん!</p>
</body>
</html>

見たいな感じで書いたりするからな
700nobodyさん:2008/10/06(月) 22:39:10 ID:???
>>699
そんなコードかかねーからw
701nobodyさん:2008/10/06(月) 23:56:26 ID:szIkgH26
http://pc11.2ch.net/test/read.cgi/php/1204488452/720

こういうのPHPでカンタンにできるの?
702nobodyさん:2008/10/07(火) 00:04:09 ID:xy9SRLMk
暇だから答えるか。。

>>701
無理。PHPはサーバー側のプログラムだから。ブラウザの機能に付加するしかないから
FireFOxのアドオンっていうのがJavaScriptで書かれているから、それ勉強した方がいいよ。
703nobodyさん:2008/10/07(火) 00:04:26 ID:???
>>700
書くだろ
>>699を理解できないのはロジックが分離できてない証拠
704nobodyさん:2008/10/07(火) 00:08:21 ID:???
できないの?できるの?
そうだよね?違う?
下らん質問繰り返してる暇があったらさっさとはじめろよグズ野郎
705nobodyさん:2008/10/07(火) 00:30:01 ID:UKq/cagT
windowsとApacheでphpのプログラムを書いているのですが
<?php
print_r ($_COOKIE);
?>
とすると
Array ( [PS] => ngnrnodnjsl5fmj8gl6ytgsks0 )

と表示されます
setcookieを一度も呼び出さなくても勝手にこのPSというクッキーが発行されています
これは何ですか
706nobodyさん:2008/10/07(火) 01:31:01 ID:CqpiE/lL
クッキーです。
707nobodyさん:2008/10/07(火) 13:07:59 ID:???
>>703
かかねーからw
今時、テンプレートエンジンとか普通使うし
そんなコードを書くほうが少ない
ビューとロジックを分離出来ていないのはどっちだよw

デザイナーにPHPコードそのまま埋め込ませるのか?w
708nobodyさん:2008/10/07(火) 13:10:28 ID:???
>>701
出来るよ
709nobodyさん:2008/10/07(火) 13:57:53 ID:???
し・・・下らねぇ
710nobodyさん:2008/10/07(火) 14:01:56 ID:???
個人なら一緒でもいいんじゃね
分けると重くなるし
711nobodyさん:2008/10/07(火) 14:02:11 ID:???
>>707
PHPコードも、Smartyのタグも、埋め込ませるのでは変わらないよ。
テンプレートエンジンのオーバーヘッドはSmartyなんかでは特に高くて、
>>699のようなコードにするこでの分離も業務ではざらにあるんだよ。
712nobodyさん:2008/10/07(火) 14:04:40 ID:???
フレームワーク使って>>699のような書きかたも普通にするわ
713nobodyさん:2008/10/07(火) 14:44:20 ID:???
>>699 普通のPG
>>707 フレームワークしか触ったことの無い底辺PG

↑FA?
714nobodyさん:2008/10/07(火) 14:48:43 ID:???
難しい言葉や一通りいろいろなものには触ってはいるが
本質的なことを理解していないタイプなのだろう
715nobodyさん:2008/10/07(火) 21:25:43 ID:4E7CA6TZ
学習計画なんだけど、
素のPHPに1ヶ月、
smartyに1ヶ月、
cakephpに1ヶ月、

で合計3ヶ月で大体基本をマスターしようと
思うんだけど、どう思う?
716nobodyさん:2008/10/07(火) 21:28:52 ID:???
別に・・・
717nobodyさん:2008/10/07(火) 21:35:53 ID:4E7CA6TZ
あ、もしかしたら、PEREってのも勉強しないといけないの?
718nobodyさん:2008/10/07(火) 21:35:56 ID:???
>>715
他の言語経験者ならいいんでない?
719nobodyさん:2008/10/07(火) 21:41:56 ID:???
なんでも予定通りには行かないだろうからとりあえずヤってみるべし

>PERE
PECLのことか?これはC言語だから取りあえずスルーでイイ
定番PECLの使い方くらいは覚えておく必要はあるな(mbstringとか
720nobodyさん:2008/10/07(火) 21:42:09 ID:???
>>715
長すぎ
721nobodyさん:2008/10/07(火) 21:42:25 ID:???
>>719
PEARのことだと思われ
722nobodyさん:2008/10/07(火) 22:12:54 ID:???
>>715
せいぜい一週間だろ
723nobodyさん:2008/10/07(火) 22:36:38 ID:wbjjwnhA
GDを使って、カウンターの画像を表示するようにしています。
下記のようにしているのですが、1桁の画像しか表示されません。
桁数に併せて画像を連続出力する?みたいな事って出来ないのでしょうか?

$count = "1234";
$c_array = str_split($count);

header("Content-Type: image/gif");

for($i=0;$i<count($c_array);$i++){
$cnt = "img/".$c_array[$i].".gif";
$image = imagecreatefromgif("$cnt");
imagegif($image);
imagedestroy($image);
}
724nobodyさん:2008/10/07(火) 22:39:54 ID:???
何をやっとんじゃ
725nobodyさん:2008/10/07(火) 23:47:39 ID:???
>>723
1つのimgタグで複数の画像を同時に表示出来ないことと同じ理由だぞ・・・
単純に4桁なら4桁で1つの画像に表示させればいいじゃん
1桁1画像にする理由があるならスマンが
726nobodyさん:2008/10/08(水) 01:45:48 ID:ij2fkFmB
アンケートをためしに作っているのですが

作り方の載っているサイトなどをみると
送られたデータを表示する際には
XSSを防ぐために htmlspecialchars 使えって
書いてありますがタグなどを抜く strip_tags ではだめなんでしょうか

駄目だとしたら理由も教えてください。
727nobodyさん:2008/10/08(水) 02:12:39 ID:???
変換する関数と取り除く関数じゃん
728nobodyさん:2008/10/08(水) 02:23:16 ID:ij2fkFmB
>>726
すいません。書き忘れました。

htmlspecialchars が < とかを変換する関数だっていうのは
わかっているんですが、それでXSS対策になるんだったら
タグを取り除いても対策になるんじゃないかと思ったんです。
729nobodyさん:2008/10/08(水) 02:33:36 ID:???
strip_tagsのタグの除外方法に問題があります。
onmouseoverとかのイベントハンドラをタグに入れてかけてごらん。
730nobodyさん:2008/10/08(水) 03:05:46 ID:???
XSSとは直接関係ない別の理由、
例えばurlをはりつけられて宣伝行為がいやだとかなら、
正規表現でurlあったら登録前にはじくようにすればええ。
最初から<>を入力禁止にすればいい。
731723:2008/10/08(水) 05:22:24 ID:???
>>725
すみません、「4桁でひとつの画像」という意味が分かりません。
例えば、カウンターで「1234」という桁数を表現したい場合、
1234の画像を予め作っておかなければいけないのでしょうか?
732nobodyさん:2008/10/08(水) 06:33:06 ID:???
>>731
その通りです。4つ画像作るということは、
4回もHttp RequestがWeb Serverに対して発生するということですよ。
733723:2008/10/08(水) 07:30:56 ID:???
自分で調べてimagecopymergeを使って
画像をコピー・マージンする事で対処出来ました。
やはり、すべての画像を用意するのは手間ですからね。

お騒がせしました。
734nobodyさん:2008/10/08(水) 07:50:07 ID:???
そんなことより、
http://cms.c-okinawa.co.jp/

サイトが乗っ取られているぞwwwww
735nobodyさん:2008/10/08(水) 07:53:47 ID:???
>>734
kwsk
SQLインジェクションでもされたか
736nobodyさん:2008/10/08(水) 08:29:31 ID:???
>>735
詳しくは俺もよく分からないが、mixiとかで大騒ぎになっているw
どうやら、ネット企業らしいが、自分の会社の恥をさらけ出している。
こういう会社に誰がシステム開発を頼むであろうか、いや頼まない。

http://72.14.235.104/search?q=cache:wa7dfBVHLrwJ:cms.c-okinawa.co.jp/cinfo/39-campanyinfo/69-campanyinfo.html%3Ftmpl%3Dcomponent%26print%3D1%26page%3D+http://cms.c-okinawa.co.jp/&hl=ja&ct=clnk&cd=2&gl=jp
737nobodyさん:2008/10/08(水) 08:31:02 ID:???
しかも、そのページキャッシュの下にある、これは何だ。
こんなバグばかりの自社ページw

最終更新 ( 2008年July18日(Friday) 13:49 )
738nobodyさん:2008/10/08(水) 08:34:44 ID:???
まぁ沖縄だからな
都内と比べて技術者が劣るのは否めない
739nobodyさん:2008/10/08(水) 08:36:00 ID:???
裏を返せば、東京でプログラマーやっていれば、
沖縄でプロマネとか出来るってことか?
740nobodyさん:2008/10/08(水) 08:45:47 ID:???
CMSの管理アカウントが洩れたんだろうね。
技術力というよりは、管理力の問題かな。
741nobodyさん:2008/10/08(水) 08:49:07 ID:pfYxFPga
すみません、質問です
今phpでプログラムを書いているんですが、実行中にタイムアウトしてしまいます
デフォルトの制限30秒を伸ばすのではなく、根本的に解決したいと思うのですが
可能性としてどんなことが考えられるでしょう?
フォームを送信して、確認画面で表示する程度のプログラムでタイムアウトします
ソースを見せられないのに漠然としていて申し訳ないのですが、ありがちな失敗例でも
教えてもらえたら幸いです

環境はwinXP Pen3-900mhz メモリ512m apache2 php5です
マシンのスペックがショボイのも一因かなと思いますが問題ないでしょうか?
742nobodyさん:2008/10/08(水) 08:55:09 ID:???
>>741
ソース出した方が、解決早いよ。
743nobodyさん:2008/10/08(水) 09:10:24 ID:???
>フォームを送信して、確認画面で表示する程度のプログラムでタイムアウトします
こんなんでタイムアウトするとかありえないし無限ループしてるだけじゃね?

whileとかforの部分があったら出してみ
744nobodyさん:2008/10/08(水) 09:37:13 ID:pfYxFPga
>>742-743
お返事ありがとうございます whileやfor文はないんです
いま、error.logを見たら、以下のようになっていました

PHP Fatal error: Maximum execution time of 30 seconds exceeded in
C:\\....\arrayList.php on line 2, referer: http://localhost/system/admin/player_mng/base.php

それで、arrayList.phpをみると
<?php
$sTypeAry = array(array("こだわらない",0),array("バー",1),array("カフェ",2),array("レストラン",3),array("ライブハウス",4));
となっています($sTypeAryの前にタブが入ってます)
ログが問題あるといってるのは$sTypeAryの箇所ですよね? おかしいでしょうか?
このarrayList.phpはたくさんの配列が定義されていて、それを使ってプルダウンメニューを生成してるんですが、、
745211:2008/10/08(水) 10:12:23 ID:ARUsAyOt
気になる部分を切り出して動かしてみるとか、
途中でログを出力するようにしてどこで止まるか調べるとか、
デバッガーを使ってみるとか、
動いていた環境と何が違うのか考えてみるとか、
文字コードが関係してないかとか、
考えればいろいろ思いつくんじゃない?
746741:2008/10/08(水) 10:32:58 ID:pfYxFPga
>>745
ありがとうございます
>気になる部分を切り出して動かしてみるとか、
>途中でログを出力するようにしてどこで止まるか調べるとか、
>デバッガーを使ってみるとか、

気になる部分を切り出したり、関係なさそうなとこをコメントアウトしたりはしてますが
ログ出力とかデバッガとかはわかりません
どんな風にしたらいいんでしょうか?
ログ出力ってのはapacheのerror.logとは違うものですか?
デバッガって専用ソフトがあるんでしょうか。。
調べてみますが、もし気が向いたら教えてください
747211:2008/10/08(水) 10:45:45 ID:ARUsAyOt
>気になる部分を切り出したり、関係なさそうなとこをコメントアウトしたりはしてます

これで問題のあるところが絞り込めるんじゃないの?
んでそこをじっと見てみれば解決に近づくと思うけど。

知らないことは調べてみて、わからないことをまた聞けばいいじゃない。
748nobodyさん:2008/10/08(水) 12:36:58 ID:???
Pear::Benchmarking_Benchmarkでも使ってみたら
749nobodyさん:2008/10/08(水) 12:42:57 ID:???
配列をループさせて作るプルダウンは生成できてるの?
一度、プルダウン生成のループ前でexit;してみなよ。
それでタイムアウトしなければ配列の要素が多すぎるか無限ループ起こしてるか。
750nobodyさん:2008/10/08(水) 12:50:49 ID:???
whileやfor文はないけどforeach文はあるんですとかいうオチか?
配列つかっててループ使わないとは到底思えないわけだが
751nobodyさん:2008/10/08(水) 13:03:33 ID:???
エスパー呼んで来い!
752nobodyさん:2008/10/08(水) 14:52:41 ID:???
ふつうに再帰呼び出しのバグのような...
753nobodyさん:2008/10/08(水) 14:55:49 ID:???
>>744
>arrayList.phpはたくさんの配列が定義されていて

その配列の数だけプルダウンメニューを生成していると・・・
ま、問題箇所はそこだね。

プルダウンメニューの生成部分をここに書いてご覧。
754nobodyさん:2008/10/08(水) 16:06:32 ID:???
文字コードの変換についての質問です
対象となる文字を書き込むと文字化けするようですので以下のURLの検索結果を見ていただけますでしょうか
ttp://www.google.co.jp/search?num=100&hl=ja&q=%E9%AA%9A%E8%B4%A7%E5%9B%BE&btnG=%E6%A4%9C%E7%B4%A2&lr=

これらの漢字をUTF8からSJISに変換しようとすると?に化けます。
※SJIS-winも同じ

用途はウェブから拾ってきた文字列(UTF8)をWindowsのフォルダ名として使用したいのですが、
特殊な文字が含まれている場合に文字化けを起こし、場合によってはフォルダの作成に失敗します。

ちなみにPythonだと、str.decode('utf8') でデコードすると特殊な文字のままフォルダ名として使用できました。
これと同じ事をPHPで実現可能でしょうか?

よろしくお願いいたします。

OS:WindowsXP
phpは5.2.5を使用
755754:2008/10/08(水) 16:08:37 ID:l2gN2Unr
すみません。age忘れました・・
756nobodyさん:2008/10/08(水) 16:22:07 ID:???
中国語じゃないの?
757nobodyさん:2008/10/08(水) 20:36:06 ID:???
Imagickを使用して複数のGIF画像からアニメーションGIFを作成したいと思います。
以下のようなコードを実行したところ、作成はされたのですがアニメーションが繰り返しません。

$im = new Imagick("1.gif");
$im2 = new Imagick("2.gif");
$im->addImage($im2);
$im->writeImages('3.gif', true);
$im->destroy();
$im2->destroy();

どのようにしたら繰り返すアニメーションGIFを作成できますか?

PHP 5.2.3
Fedora Core release 6

よろしくお願いします。
758757:2008/10/08(水) 20:37:40 ID:AijBw8uq
すいません。ID出してませんでした。
759nobodyさん:2008/10/08(水) 20:37:47 ID:???
760nobodyさん:2008/10/08(水) 20:40:30 ID:???
761nobodyさん:2008/10/08(水) 20:54:08 ID:ZJxG3jMs
【OS名】CentOS 5.2
【PHPのバージョン】php 5.1.6-20.el5_2.1
【連携ソフトウェア】mysql
【質問内容】
これまで正常に動作していたサイトの出力の先頭にゴミが出るようになった。
下記のようなゴミ。これを消したい。
出るようになったタイミングは CentOS で yum update やってサーバ再起動してから。
PHP上で動いているプログラムの問題かと思ったら、phpMyAdmin でも同様の
状態だった。ゴミの文字列は毎回違う。
------------------------------------------------
10be4 (←これがゴミ)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
------------------------------------------------
猛烈に以前も同じことがあった気がする。
おながいします。
762nobodyさん:2008/10/08(水) 21:08:44 ID:???
BOM
763たまちゃん ◆ExGQrDul2E :2008/10/08(水) 21:20:35 ID:EssfW95q
PHP 正規表現

で質問があります。
画像ファイルとかの

test.jpg

1234.test.jpg

テスト.jpg

のように、一番最後の.の後にある拡張子を取得したいんですけどどうしたらよいですか?

$test = 'test.test2.gif';

if(preg_match("/(.+?).\d/",$test){

$filename = $test[1];

}

では全然ダメでした。
764nobodyさん:2008/10/08(水) 21:33:51 ID:???
/[^\.]+$/

ていうか何がどうなってその正規表現に行き着いたんだ
765nobodyさん:2008/10/08(水) 21:35:26 ID:ij2fkFmB
今帰りました。
お礼が遅れましたすいません。

>729
ありがとうございます。
該当すると思われるページにたどり着き納得しました。

>730
入力の制限も勉強してみます。
ありがとうございます。
766nobodyさん:2008/10/08(水) 22:55:04 ID:QSI2sKBR
XSS対策で、htmlspecialchars関数を使ってますが、&をエスケープするので、
&#9829等の特殊文字が表示されなくなりました。
みなさんはこの部分はどう対策されてますか?
767741:2008/10/08(水) 23:43:38 ID:pfYxFPga
>>749-753
親切なレス本当にありがとうございます
外出しててお返事遅れてしまいました
配列をプルダウンにする処理は以下の通りです

function makeStypePd($name,$selectNum,$modifyMode){//$modifyMode top>通常 rewrite>修正 db>db取得
$name=strtoupper($name);
$options="";
//修正画面用
if($modifyMode == "rewrite"){
for($i=1;$i<=count($this->sTypeAry)-1;$i++){
$options .="<option value=\"".$this->sTypeAry[$i][1]."\" ";
if(($selectNum != NULL) && ($selectNum == $this->sTypeAry[$i][1])){
$options .= "selected=\"selected\"";
}
$options .= ">".$this->sTypeAry[$i][0]."</option>\n";
}
return $options;
}
//DB参照画面用
else if($modifyMode == "db"){
//同様の処理
}
//通常画面用 普通にプルダウンを作る
else if($modifyMode == "top"){
//同様の処理
}
}

おかしいでしょうか? 選択値を配列の各要素が持つ値と照合して、同じだったらselectedとする、
そうでなければ普通にoptionを作っていくという処理のつもりです。配列は以下のものを使っています。
$sTypeAry = array(array("こだわらない",0),array("バー",1),array("カフェ",2),array("レストラン",3),array("ライブハウス",4));
768nobodyさん:2008/10/09(木) 00:17:59 ID:???
つっこみどころ満載で涙が出るな
ループでは「$this->sTypeAry」、定義では「$sTypeAry」、
ちゃんと「$this->sTypeAry」に代入されてるか?

forで「$i=1」ってなってるけど、それだと「こだわらない」が使われないよな?
(配列ならforeachの方がいいと思うんだがなぁ)
単純なループだから大概な数を回しても30秒以内に終わりそう・・・・
ここには原因がないのだろうか
769nobodyさん:2008/10/09(木) 00:44:35 ID:ju+5ve0t
>>768
どうもです 本当にすみません
配列の代入はされてます
「こだわらない」はこの場合適用されなくていいんです(一言添えるべきでした すみません)
forよりforeachの方がいいんですか? そのほうが早いとか?
foreachをよく理解できないので使わなきゃ良いやって気分だったんですが、、
どこがまずいのかなぁ、、

あと、ちょっと話題がずれるかもしれないですが
ある画像ファイルがあるときは、それを出力する処理をしています
$dbPicPath = "../../../".$_SESSION['uType']."/img/".$_SESSION['uId']."/".$corner."/".$name.".jpg";
if(getimagesize($dbPicPath)){
$rtn.="<img src=\"".$dbPicPath."?".$rand."\"".$resize." />\n";
}else{
$rtn.="−\n";
}
return $rtn;
この処理に対して、該当する画像が存在しない場合エラーログに
PHP Warning: getimagesize(../../../artists/img/1/pic/***.jpg) failed to open stream: No such file or directory
といわれます
この警告Warningを出さないようにするにはどうしたらいいでしょうか? これが遅い原因かな?
上記処理の時点では、該当ファイルの有無はわからないので 「そんなファイルやディレクトリはないよ」と
いわれてもしょうがないじゃんって気分です。。 すみませんが気が向いたら教えてください
770nobodyさん:2008/10/09(木) 00:53:31 ID:???
ソースはともかくプルダウンはできてるぞ
getimagesize()の前にファイルの有無をチェック
771nobodyさん:2008/10/09(木) 01:05:05 ID:ju+5ve0t
>>770
たびたびすみません
getimagesizeをfile_existsに置き換えたらwarning出なくなりました
もう少し粘ってみます 今日はありがとうございました
772nobodyさん:2008/10/09(木) 01:08:35 ID:e6lF3vrt
データベースに接続するために、ユーザーIDやPWDをphp側で設定する必要があると思うのですが、
そのような設定値は、どこに書くのが適切でしょうか?

ファイルに外だしすると、データベースに接続するたびに、
ファイルI/Oが発生して処理が遅くなるかと思いますが、
ソースに直接書くと、異なるサーバー(例えばテスト環境と本番環境)毎にソースを変えなければいかず、
それも、欠点が多いような気がします。

みなさんは、どこに書かれていますか?
よろしくお願いします。
773nobodyさん:2008/10/09(木) 01:20:53 ID:???
>>766

preg_replace("/&(#[0-9]+|[a-z]+);/i", "&$1;", htmlspecialchars($value)

とか。
ウザイけど。
774nobodyさん:2008/10/09(木) 02:03:19 ID:HkhPxnZW
>>772
config.php作って定数にしてinclude
775nobodyさん:2008/10/09(木) 02:04:43 ID:???
>>772
config.ini作ってfile_iniみたいた感じのやつで読み込んでる
776nobodyさん:2008/10/09(木) 07:18:15 ID:???
>>766
考え方がおかしい
htmlspecialchars() は文字列をHTMLのCDATAに変換するためのもの
もともと実体参照が含まれているCDATAな文字列に対して
htmlspecialchars() を噛ませばおかしな事になるさ

実体参照をエンコーディングに従って割り当てられた文字コードに直せ
777773:2008/10/09(木) 09:54:59 ID:T+Rb7EjR
>>773
私の場合単純に
$var = htmlspecialchars($var,ENT_QUOTES);
$var = ereg_replace('&#([19])','?\\1',$var);

とやろうと思ったのですが、セキュリティーホールができそうでちょっと怖いです

>>776
よくわからないのですが、実体参照(文字参照)に文字コードが関係するんですか?
ユーザーの中に、?&#9829;とか?&#9834;とか書き込んでくる人がいるので、そういう人のために
きちんと記号表示されるようにしてあげたいのですが、、

http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E5%8F%82%E7%85%A7
778773:2008/10/09(木) 10:14:06 ID:T+Rb7EjR
>>777
追記
2chに変換されてしまった、、(^-^;

2chでは特殊文字が普通に変換されるサーバと?になるサーバとがあるみたいですね
&#[0-9]* って感じか

4行目
$var = ereg_replace('&amp;#([19])','&#\\1',$var);
779nobodyさん:2008/10/09(木) 12:37:12 ID:???
>>763
それ正規表現いらない
780773:2008/10/09(木) 13:07:33 ID:T+Rb7EjR
その後いろいろ調べたのですが、どうやら&はエスケープしなくてもセキュリティー上は問題ないようです。
http://shimax.cocolog-nifty.com/search/2007/12/php_f864.html

とりえずこんな感じにしてみました

$var = htmlspecialchars($var,ENT_QUOTES);
$var = ereg_replace('&amp;#(9[0-9]{3}|1[0-9]{4})','&#\\1',$var);//一桁目が1(5ケタ)と9(4ケタ)のみ許可する
781nobodyさん:2008/10/09(木) 13:52:37 ID:XhRaoWbe
【OS名】レンタルサーバで不明
【PHPのバージョン】php4.4.2
【連携ソフトウェア】mysql
【質問内容】
WebAPIよりXMLを取得しているのですが、階層が一定でなく
再帰処理によりデータを処理したいと考えています。
その際、staticによりデータを保持して再帰処理しているのですが
staticで指定したデータを初期化する方法はないでしょうか?
メインのファンクションから再帰処理を呼び出しているのですが
すべてのデータが残ってしまい困っています。
782nobodyさん:2008/10/09(木) 14:16:55 ID:???
783nobodyさん:2008/10/09(木) 14:24:39 ID:???
>>781
staticよりリファレンスの方が良くね?

function sample ($node, &$out) { 〜 }
$outに返り値を格納するようなヤツ
784nobodyさん:2008/10/09(木) 14:35:29 ID:???
>>783
望み通りの動作になりました。ありがとうございます!!
785nobodyさん:2008/10/09(木) 17:58:27 ID:waFB31sw
"aaa","bbb"

と言うように区切られた文字列を
$array[] = "aaa";
$array[] = "bbb";

と言うように配列に入れるにはどうしたらいいのでしょうか?
ファイルではないのでfgetcsvも使えません。
786nobodyさん:2008/10/09(木) 17:59:43 ID:???
>>785
split
787nobodyさん:2008/10/09(木) 18:04:59 ID:DVR9Hu5G
すみません、質問させて下さい。

PHP4のサーバーでエラー内容がブラウザに表示されず白紙のままです。
display_errorsとhtml_errorsはphpinfoで確認したところOnでしたが、念のためini_setとhtaccess両方試したけどダメでした。

よかったらご教授ください。よろしくお願いします
788nobodyさん:2008/10/09(木) 18:07:46 ID:???
>>787
error_reportingは?
789nobodyさん:2008/10/09(木) 18:19:02 ID:DVR9Hu5G
>>788
これが0でした!ありがとうございました。
790nobodyさん:2008/10/09(木) 20:04:59 ID:HNHF0bWh
質問なんですが、配列の名前をループ内で自由につけるのはどうすればいいですか?


一つの配列$arrを分けたいので、$arr1、$arr2、…、のように分けるつもりで
$arrX[] = $arr[$i]
のようにしたいのです。
(※ X の所にループ内で得られる数字を入れたい)

どうすればいいですか?
791nobodyさん:2008/10/09(木) 20:26:55 ID:???
$key = "arr$i";
$$key = $arr[$i];
792790:2008/10/09(木) 20:49:00 ID:HNHF0bWh
>>791
$$keyの様にやってみたのですが、
ループ2周目で$$keyが上書きされてしまうで、$$keyが配列になりません。
($arrXに複数入れたいのです)


そこで
$$key[] = arr[$i];
にしたのですがエラーになってしまうのです。
他に方法はないでしょうか?
793nobodyさん:2008/10/09(木) 20:51:36 ID:???
教えてもらったやり方から色々工夫してみれ
794nobodyさん:2008/10/09(木) 21:31:39 ID:???
LPO対策クラス作って設置し実際に効果があった、需要があればさらす。
795nobodyさん:2008/10/09(木) 21:48:48 ID:???
むしろ効果のほうを晒してくれ
796nobodyさん:2008/10/09(木) 22:15:58 ID:???
>>739
お前分からんだけやろw
797nobodyさん:2008/10/09(木) 22:41:31 ID:???
お前は誰と戦ってるんだ
798nobodyさん:2008/10/09(木) 22:44:13 ID:HNHF0bWh
>>796
お分かりでしたら教えて下さい。
変数はできたのですが変数が配列になりません。
799nobodyさん:2008/10/09(木) 22:59:01 ID:ZnuIQjgo
イラレ+phpのgdでアバター機能作成をしています。
パーツ画像種類はPNGで、合成後jpgに変換して表示しています。
アンチエイリアスをかけて画像を保存して、下記を実行すると、絵がある部分の背景が黒くなってしまいます。
アンチエイリアスをかけずに画像を保存すると、画像がぎざぎざになってしまいます。
どうにか、うまい按配で合成することはできないでしょうか?

/**/$imgpro[0]=array("../img/abt/base/w2.png","0","0");
$imgpro[1]=array("../img/abt/huku/w2.png","0","0");
$imgpro[2]=array("../img/abt/hair/w2.png","0","0");
$imgpro[3]=array("../img/abt/eye/w2.png","0","0");
$imgpro[4]=array("../img/abt/hana/w2.png","0","0");
$imgpro[5]=array("../img/abt/kuti/w2.png","0","0");
$imgpro[6]=array("../img/abt/mayu/w2.png","0","0");


$src = imagecreatefrompng($imgpro[0][0]) or die("error!1\n");


foreach($imgpro as $value){

$mrg1 = imagecreatefrompng($value[0]) or die("error!2\n");
list($mrg1_width, $mrg1_height) = getimagesize($value[0]);


// イメージをマージ
imagecopymerge($src, $mrg1,$value[1],$value[2],0,
0,$mrg1_width,$mrg1_height,100) or die("error!3\n");

}
800nobodyさん:2008/10/09(木) 23:14:45 ID:???
白背景の画像用意してマージすりゃいいのと違うのか
801nobodyさん:2008/10/10(金) 01:04:15 ID:???
>>798
$$key = array($arr[$i])
でできますよ。
802nobodyさん:2008/10/10(金) 02:23:46 ID:6LvKpYRu
phpの質問と言うよりはプログラミングの基本な質問で悪い。

いま仮に100個あるデータの中からランダムで重複せずに(←重要)
10個のデータを取り出したい場合なんだが
スマートな書き方ってどうするんだろ?

$arr = array(100個のデータ);
$random = mt_rand(0, $arr-1);

$random を以前取り出したデータと重複していないかチェックして
新たな配列に入れるみたいな作業になると思う。
803nobodyさん:2008/10/10(金) 02:33:05 ID:???
上からこられるといらっとするよね
804754:2008/10/10(金) 02:55:06 ID:uSuuZHDd
>>802
配列をシャッフルしてarray_popで取り出す
805802:2008/10/10(金) 03:03:14 ID:6LvKpYRu
>>804
あー、頭いいな〜。
if文も使わないし非常にスマートですね。

で調べていたらarray_randというまさにそのためにあるような
関数で解決しました。
マニュアルには明記されていませんが、
どうやら重複せずに配列からランダムで取り出すみたいです。
PHPは関数が豊富ですな。
806nobodyさん:2008/10/10(金) 05:13:24 ID:???
そんなんどこに書いてあったんだよ
マジレスすると種次第。
>>804は切り出さなくても先頭10だけ使うって方法でも良いね
807nobodyさん:2008/10/10(金) 09:17:06 ID:???
808nobodyさん:2008/10/10(金) 09:56:30 ID:Mjn4nOqX
2chぽい掲示板を作っています。データの保存形式も同じです。
最新30レスだけ読み込みたい場合、今のところ全部読み込んで抜き取っているのですが
全部読み込まずにファイルの後方から読み込むような方法はないでしょうか
負荷に困ってるわけではないのですが、負荷を軽くする方法を知っておきたくて。よろしくおねがおします。
809nobodyさん:2008/10/10(金) 09:58:37 ID:???
>>808
tail -fでやるのは如何でしょうか?
810nobodyさん:2008/10/10(金) 11:09:14 ID:???
fopenして
fseek(ファイルのケツ)して1行づつ戻して読めば?

アッー!
811nobodyさん:2008/10/10(金) 12:13:05 ID:???
ケツにseekしても行単位で戻せんし、どうしてもバイト単位になるす
行単位でseek出来れば最初からヤっとるわ!

アッー!
812nobodyさん:2008/10/10(金) 16:28:36 ID:???
わがまま言わずに行区切りくらい自分で見付けなさい

行単位でシークしたけりゃおとなしく固定長レコードか、データベース使えば?
負荷が問題になるならキャッシュの導入を先に考えればいいよ。
813nobodyさん:2008/10/10(金) 18:31:41 ID:Yvgf2UGi
php4とphp5をくらべて、php4でしか使えない関数ってありますか?
814nobodyさん:2008/10/10(金) 18:34:30 ID:???
>>813
たとえば、mb_系の関数やwhile文やexit、functionなどが使えない。
815nobodyさん:2008/10/10(金) 18:45:41 ID:Yvgf2UGi
ありがとうございます
以下のサイトを参考にしたのですが、このページに掲載されている関数は全部php5で使えるということでしょうか?
ttp://php.benscom.com/manual/ja/indexes.php
816nobodyさん:2008/10/10(金) 18:57:59 ID:???
>>815
釣られんな、>>814に書いてるヤツが使えなかったらヤバいだろ

ttp://www.php.net/manual/ja/indexes.php
同じ内容だが本家見ような、余裕あれば原語も

ttp://www.php.net/manual/ja/about.prototypes.php
マニュアルを見る前にここチェック
関数の説明にはちゃんと対応バージョン書いてあるからな
817nobodyさん:2008/10/10(金) 19:23:21 ID:Yvgf2UGi
ありがとうございます
これからは本家で見るようにします。
php4を切り捨てるため、php5で使える関数をテキストエディタの補完色分けに作ろうと思ってます。
関数の説明ページをひとつずつ開いて対応バージョンを調べるしかないですよね・・・
時間との戦いになりますが、地道にやっていきます。
818nobodyさん:2008/10/10(金) 20:02:39 ID:???
いくつあると思ってるんだw
819nobodyさん:2008/10/10(金) 20:19:02 ID:Mjn4nOqX
>>809-812
試してみます。
ありがとうございました。
820nobodyさん:2008/10/11(土) 02:23:25 ID:Dg304RS1
いいってことよ
無料人力検索ボランティアをこき使ってくれたまえ
821nobodyさん:2008/10/11(土) 02:25:45 ID:Dg304RS1
1.質問があがる

2.質問を読んだ者が検索して答えをみつけてくる

3.検索してみつけたページに書いてあることをコピペ(文章改ざん)して偉そうに回答

そんなスレだからがんばれよ
822nobodyさん:2008/10/11(土) 02:26:39 ID:???
そんな今さらなこと言われてもなぁ
823nobodyさん:2008/10/11(土) 02:47:43 ID:???
これいいなと思う質問回答はwikiにまとめようぜ
ttp://wikiwiki.jp/
824nobodyさん:2008/10/11(土) 04:35:19 ID:???
一人でやってろ
825nobodyさん
>>830がwikiwiki登録してくれます