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

このエントリーをはてなブックマークに追加
1nobodyさん
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
2nobodyさん:2007/04/12(木) 16:56:03 ID:???
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 37
http://pc10.2ch.net/test/read.cgi/php/1169644229/
【PHP】下らねぇ質問はここに書き込みやがれ 38
http://pc10.2ch.net/test/read.cgi/php/1170520777/
【PHP】下らねぇ質問はここに書き込みやがれ 39
http://pc10.2ch.net/test/read.cgi/php/1171280039/
【PHP】下らねぇ質問はここに書き込みやがれ 40
http://pc11.2ch.net/test/read.cgi/php/1172151461/
【PHP】下らねぇ質問はここに書き込みやがれ 41
http://pc11.2ch.net/test/read.cgi/php/1173163186/
3nobodyさん:2007/04/12(木) 16:57: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/
4nobodyさん:2007/04/12(木) 16:57:52 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プログラムとして実行された結果になる。
5nobodyさん:2007/04/12(木) 16:58:40 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に保存?
 → 好きにしてください
6nobodyさん:2007/04/12(木) 17:08:16 ID:???
>>1
スレ立て乙

最適化テンプレは貼るなよw
7nobodyさん:2007/04/12(木) 17:34:39 ID:W4YgAsOn
あのう、昨日からPHP+MySQLの独学を始めようと思って大型書店にいったらほとんど
PHP+MySQLの本がなくて、アマゾンや有隣堂で検索してみると大部分のこの手の本が絶版に
なってるんですが、もはや主流ではなくなったってことですか?
8nobodyさん:2007/04/12(木) 18:08:12 ID:???
個人ユースならSQLiteでいいんじゃないの?
9nobodyさん:2007/04/12(木) 18:10:26 ID:???
>>7
主流かどうかはしらないけど、
普通にPHP+MySQL使ってるよ。
本がないならWebで勉強するのも手だと思う。
資料たくさんあるしね。
10nobodyさん:2007/04/12(木) 18:19:41 ID:???
>>7
別々の本で良いんじゃないの
あとはオンラインヘルプを使うのに抵抗がなくなったら
十分だよ
11nobodyさん:2007/04/12(木) 18:26:29 ID:jGSSJUCn
$today = 2007-04-12 18:24:00 //現在の日時
$period = 5 //表示する期間

こういう条件だとして、現在の日時から終了日時を割り出したいと思っています。
(2007-04-17 18:24:00 こう表示したい)

そこで
echo date("$today",strtotime("+$period day"));

とかしてみましたが、思い通りになりません。どのように記述したら良いのでしょうか?
12nobodyさん:2007/04/12(木) 18:42:36 ID:???
>>8-10
どうもです。入門用のPHP+MySQL本がほとんど絶版になっていて、アマゾンではコレクターとして
1冊8000円〜1万円になってるのもありました。

やりたいことは、下記の価格コムみたいに、絞り込み検索、並べ替えができる商品リストを
作りたいんです。個人サイトですが。

http://kakaku.com/bb/ranking/1110000011401500000000000000000000012000/

普通のPHPとMySQL、SQLiteの本で大丈夫ですかね…?
13nobodyさん:2007/04/12(木) 18:43:39 ID:???
                    ___
               , 二¨-―-- 、`丶、
               /_ ..-――-.. 、十ヽ\
            //::.::,:.:.:./::/::.::.l::.::`ヽ、\ヽ
               〃::/:::/:.:.:/::/::.:/::|::.:、:.::.::ヽ ハ `、
           l::.:::l:: ,':l:::/::/::.:/::;小:::l::ト、::.:V l ヽ
            {::.:::|:::l::|::l::/::.:/::/:/:_j⊥l::ヽ:!}  \
.           ハ::.::l:::|┼く:/::/ /'´ノ ヽ:∨::.:l |  /
           〈 l::.:|:::l::|∠、ノ   , =≡V::.::/|/
           ヽヘ::ヽ::V⌒゙  ,   "゙ / :::,'  l〔
           /rヘ::\ ゛゛ rーヘ  彡: /  /:::Y⌒i  下らねぇ質問は
            l冫/ }`ヽミヽ、ヽ、ノ, イ:`7十/::.::.:l |  ここに書き込みやがれ
           // /:::_rヘ_`二√ __〉/  レヘ::}  |  ですぅ!
             //  ,'/夕r==、∨---/、/ f==ミフ  厂ト、
.        //  〃r7,イ|   >トマ ̄〉 7ヽ厶ィ {ヽ 」__/ / 〉
     , -‐'7/ /:.rク/ {ニ=彳/ ハ ∨,  / ̄:{八_‐-┴勹
   /   /  /: :/7/  /,イ/ / /、/_ /: : : :|:厶 `^´ 人
   ヽ冫< /   {: : :Y〈__ //〃 ,' / 7ヽ ,仆、: : :|| : :`¨¨´: :冫、
    \/   rヘ :`ヾ//__/> //V/ /」 ハ: : l|: :丶: : : ,': ヽヽ
14虚弱PHP:2007/04/12(木) 19:48:07 ID:???
入門用のPHP+MySQL本がコレクター価格…。
これを買うのはもう愚行。

PHP本なら定番はマンモス本かなぁ?
赤マンモスが初心者向け。
15nobodyさん:2007/04/12(木) 20:48:31 ID:???
>>11
$today = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("y"));
echo date("Y-m-d G:i:s",$today + ($period*24*60*60));

こんなん?
てきとーだから動かなくてもしらん
1611:2007/04/12(木) 20:52:33 ID:???
>>15
いえ、$todayは保存されているデータです。
ですので、その書き方では無理かと思います。。
17nobodyさん:2007/04/12(木) 20:56:11 ID:???
>>16
エラソウだなお前。質問に答えてもらってるのに。
一旦UNIXタイムに直せ。その上で日付に直すのが早いだろ。
1811:2007/04/12(木) 20:57:53 ID:jGSSJUCn
>>17
すみません、ID晒します。

>>15さんの方法でいけました。自分が書いた>>1を分解して
mktimeに当てはめたら、希望通りになりました。ありがとうございました。
19nobodyさん:2007/04/12(木) 21:14:49 ID:???
>>12
その程度ならファイルベースでいいだろ。
20nobodyさん:2007/04/12(木) 21:57:37 ID:???
>>974
[0-9]{1,2}|100
では?
21nobodyさん:2007/04/12(木) 22:15:31 ID:???
それでいいと思う
22nobodyさん:2007/04/12(木) 23:48:19 ID:???
>>12
イマドキ、特定のRDBMSに特化したようなPHP解説本は時代遅れ。

二昔ほど前は、Perl/CGIではRDBMSを使わない人が多かったせいで
DBサーバーの設置方法から解説しないと十分にPHPを使いこなせない場合が多く、
それでPHP+MySQLをまとめて解説するような「くだらない初心者向け本」が多かったが
そんな本には元々価値なんてほとんど無いんだよ。
今はPerl/CGIも含めてRDBMSを使うのが常識なので、あえて解説する必要は無くなり
役に立たない本が淘汰されただけ。
23nobodyさん:2007/04/12(木) 23:51:12 ID:???
txtのみアップロードできるアップローダでファイル名と1行コメントを指定して検索機能を付けたいんですけど
データベースとの連携って必須だと思われますか?
phpのみでいけそうですか?
24nobodyさん:2007/04/12(木) 23:54:19 ID:???
>>23
必須かどうかと問われたら全然必須じゃない。
元々、RDBMSが「必須」になる場合ってのはほとんど無く、
大抵は信頼性・高速性・機能性を求めて
「より良いものとして」RDBMSを使うことを選択するものだ。
それらの条件を捨て去れば、ほとんどのシステムはRDBMS無しでも組める。
25nobodyさん:2007/04/12(木) 23:58:57 ID:???
素早い回答ありがとうございます。
phpの処理は軽いと聞くのでDB無しでも大丈夫そうかな?
でもアップローダ色々探してみたんですけど検索機能の付いたものって1つも見つからないんですが
やっぱり自分でつくってみるしかないのかなぁ。
26nobodyさん:2007/04/13(金) 00:03:57 ID:???
>>25
PHPの処理が軽いってのはCGIと比べてのオーバーヘッドの有無の話で、
ファイルアクセスとかは全然速くないので今回の話とはまるで関係しない。

大丈夫かどうかは「要求するシステムの性能」による。
・アップロードされるファイルがどのくらいの数があるのか
・同時に何人くらいのユーザがアップロードや検索をかけてくるのか
・予想される最大アクセス時にどのくらいの速度で検索結果を出したいのか
によって選択すればいい。
これらが大したことないのであればDBは無くてもそれほど困らない。
ただ、DBを使えば複数同時アクセス時にログが壊される心配などが無くなるので
気楽にプログラミングができるというメリットもある。
27nobodyさん:2007/04/13(金) 02:02:30 ID:???
>ただ、DBを使えば複数同時アクセス時にログが壊される心配などが無くなるので
>気楽にプログラミングができるというメリットもある。


ふ〜ん(笑)
28nobodyさん:2007/04/13(金) 02:08:16 ID:???
しかしPHPは楽しいな
最近C#も楽しい。

ただJavaだけは好きになれない。
全く持って面白くない。なんでだろ?
29nobodyさん:2007/04/13(金) 02:30:00 ID:5ULGyn4l
前スレ埋まったんで再質問
SHA1って非可逆なん?cryptよりもいいん?
30nobodyさん:2007/04/13(金) 02:34:26 ID:???
>>27
あんで?書き込みのコンフリクトに関しては、DB側(例えばMySQL)で処理してくれるんちゃうん?
31nobodyさん:2007/04/13(金) 02:50:34 ID:???
>>29
ハッシュってのは基本的に不可逆。
強度はSHA1>MD5>crypt(DES)
32nobodyさん:2007/04/13(金) 10:19:02 ID:6sDwYx0u
ちょうどDBがらみの話題が出てるので便乗質問です。
DBを登録更新するものと、DBから取り出してきて表示する2つのスクリプトがあるのですが、
ちょうど更新中に、表示側のスクリプトにアクセスしたときってどうなるんですか?
DBの更新は100項目5秒ほどで終わると思うのですが、
更新したとこまでのデータがちゃんと表示されるのかな?
33nobodyさん:2007/04/13(金) 10:20:15 ID:???
トランザクションのかけ方による
34nobodyさん:2007/04/13(金) 10:29:42 ID:6sDwYx0u
>>33
ナルホド・・・
クエリーを上から1つずつ実行してるので、
更新したとこまでしか表示されなさそうですね。
どうまとめるか今のスキルじゃ検討がつきませんが、
そのうち全て1回で処理するように書き換えたいですね。
35nobodyさん:2007/04/13(金) 10:30:57 ID:???
>>32
100項目の更新ってupdateを100回なのか?1回のupdateで100項目が更新されるのか?
1回のupdateで全部更新されるなら、それが終わるまではselectが止まる。
よって5秒後まで表示自体が行われない。
100項目がバラバラのupdate実行ならそこまでの内容が表示される。
36nobodyさん:2007/04/13(金) 10:34:08 ID:???
>>34
全部更新されるまでselectできないようにするなら
update前にlock tableをかけとく手もあるよ。
37nobodyさん:2007/04/13(金) 10:36:06 ID:6sDwYx0u
>>35
効率は悪いかもしれませんが100回updateです。
1回のupdateにかかる時間は、0.1秒〜1秒ほどで、
それを100回行っています。

>1回のupdateで全部更新されるなら、それが終わるまではselectが止まる。
>よって5秒後まで表示自体が行われない。

これは困りますね。最長1分ぐらいは止まるので。
38nobodyさん:2007/04/13(金) 10:49:22 ID:6sDwYx0u
>>36
実はSQLは覚えたてなので、lock tableなるものは知りませんでした。
DBの排他制御ですか。
全部更新されるまでは1分以上とまる可能性があるのでやめようと思います。

>更新をできるだけ早く処理するために、WRITE ロックは、通常、READ ロックより優先されます。
>そのため、あるスレッドが READ ロックを取得し、別のスレッドが WRITE ロックを要求している場合、
>後続の READ ロック要求は、WRITE スレッドがロックを取得し、その後そのロックを解除するまで待機します。

ということなので、update文1つ1つにWRITEロックをし、表示スクリプトにREADロックをしようと思います。

なんかスレ違いすみませんでした・・・
39虚弱PHP:2007/04/13(金) 10:56:20 ID:???
>>38
いや、その使い方なら明示的にロックする必要がないと思うけど。
ってか、update遅すぎないですか?
40nobodyさん:2007/04/13(金) 11:04:01 ID:???
>>39
必要ないですか?ならばしないことにします。
書き方が悪かったです。
update処理自体はすぐ終わるのですが、
update内容を取得するプログラムが、
サーバの応答時間によって変わるので、
(サーバダウン時の対策でtimeoutを1秒に設定しているので最長1秒)
それで処理が遅れるっていう話です。
DBとは無関係でしたね。すみませんorz
41nobodyさん:2007/04/13(金) 11:20:35 ID:???
>>40
なら先にデータを全部取得してから一気にupdateかければ?
42nobodyさん:2007/04/13(金) 11:23:01 ID:???
普通にupdateしてる部分をBEGIN〜COMMITで
1トランザクションにすればいいだけじゃないか?
それで全部updateする前かした後かどちらかになるっしょ
selectが止まることはない
43nobodyさん:2007/04/13(金) 11:36:44 ID:6sDwYx0u
さっきage忘れてました・・・

>>41
更新感覚が3分と短いので、取得に1分かかっては4分ということになってしまうので、
順番に登録という設計にしたのですが、やはりこっちのほうがいいですかね。

>>42
これがトランザクションの開始ですかー
勉強になります。(PHPスレで何勉強してるんだorz)
timeout感覚を0.1秒(100ミリ秒)にして、(これなら最長10秒ほどに)
>>41さんの設計にして、BEGIN〜COMMITでupdateしてみたいと思います。

スレ違いに付き合っていただいて感謝です。
44nobodyさん:2007/04/13(金) 11:47:18 ID:???
じゃ2分ごとに処理を実行させればいいじゃん?

どういう更新しようとしてるか分からないから何とも言えないけど、
データ取得とSQL発行は普通は分けるね。
まとめて取得+トランザクションやればまず確実じゃね。
45nobodyさん:2007/04/13(金) 11:52:19 ID:6sDwYx0u
>>44
>じゃ2分ごとに処理を実行させればいいじゃん?
3分ほぼちょうどに拘りたくて。
ただよくよく考えると、後ろのほうのデータがどっちみちずれるので、
"だいたい"3分でいいですよね。ちょっと拘りすぎてました。

>データ取得とSQL発行は普通は分けるね。
>まとめて取得+トランザクションやればまず確実じゃね。
参考になります。一般的にこうならやはり分けることにします。
これ以上はDBスレっぽくなってしまうので、これで引きたいと思います。
皆さんお答えくださってどうもありがとうございました。
46nobodyさん:2007/04/13(金) 12:48:40 ID:???
>>45
ンギモッヂワルイ!
47nobodyさん:2007/04/13(金) 13:34:41 ID:???
今日のランチはカレーかとんかつでガッツリ食べようかと思うんですが、
どちらがいいでしょうか?
48nobodyさん:2007/04/13(金) 13:35:51 ID:???
カツカレーでいいんじゃね?
49nobodyさん:2007/04/13(金) 13:44:24 ID:???
>>48
その発想はなかった カツカレー行ってくる
50nobodyさん:2007/04/13(金) 14:38:34 ID:pJrPoZVN
前スレで実況配信が流れているかとヴかweb上でチェックする方法について聞きましたが

fsockopen ($addr, $port, $errno, $errstr, $timeout);
で配信している時の確認はいいのですが、配信してない時には

>>環境によってはUNIXドメインまたはオプションの接続タイムアウトは利用 できません。
というわけで永遠に探しに行って固まります。

なにかfalse時の良い処理はないでしょうか?
51nobodyさん:2007/04/13(金) 14:45:21 ID:???
>>50
子プロセスを起動して一定時間たったら親にシグナルとか?
シグナルトラップもブロックされるかな。
52nobodyさん:2007/04/13(金) 15:14:41 ID:???
setcookieしてからリダイレクトヘッダを吐くと、
ちゃんとクッキーを食べさせてからリダイレクトされますが、
これはブラウザの標準的な動作ですか?
ブラウザによって、このやり方では駄目ということはないでしょうか?
トリッキーなやり方の気がして
動かない環境があるか気になってます。
53nobodyさん:2007/04/13(金) 15:27:50 ID:???
PHPの基礎くらいはわかったのですが、例えばブログシステムを作るとして関数をひいただけでは初心者には難しいです。どんな工程が必要でそのためには何の関数を使うとかが知りたいです。参考になるURLなど教えてください。phpのマニュアルは勘弁してください(._.)
54nobodyさん:2007/04/13(金) 15:30:16 ID:???
>>53
君はプログラムには向いてないと思う
55nobodyさん:2007/04/13(金) 15:36:44 ID:???
いきなり難しいことやろうとしても無理。
マニュアルを見ながら、数行の簡単な処理をこなしていけば、
自然とできるようになるもんだよ。

>どんな工程が必要でそのためには何の関数を使うとかが知りたいです
それは作る人によって工程は異なるし、使う関数も異なる。
実装する機能によって異なってくるから決まったものにはならない。
プログラムの面白いところは、1パターンではなく、
何パターンのやり方でも、結果として同じものが作れるという所。
56nobodyさん:2007/04/13(金) 15:59:00 ID:???
空のString ""を返してもいい箇所なのですが、
何も返さないというときに返り値にnullを指定してもいいんですよね?
結果はどっちとも同じになるのですが、意味あいが違うんだと思います。
nullっていまいちよくわからない・・・
57nobodyさん:2007/04/13(金) 16:05:25 ID:???
条件判断で自分のわかりやすいおのぞみの処理を行えば良いじゃん
58nobodyさん:2007/04/13(金) 16:33:27 ID:???
>>54
それは承知です。しかし、覚え方のタイプの違いだと思うのですが。
確かに理系の頭ではないです。

>>55
では、参考になるコードが書かれているURLなどありますでしょうか?
よろしければ教えてください。
59nobodyさん:2007/04/13(金) 16:52:03 ID:???
ゆとり世代か?
公開されてるソースが腐るほどあるだろ
60nobodyさん:2007/04/13(金) 17:00:59 ID:???
>>56
むしろreturnを書かなくていい。値を返さないってことでnullになるから。
もし条件によって値を返さない時があるなら、
return;だけで値は書かなくていい。これも同じくnullになる。
空の文字列は普通に空の文字列、nullは値がないって事。
たとえばisset()でfalseになるとかね。

しかしID出さないの増えたね。
61nobodyさん:2007/04/13(金) 17:03:44 ID:???
何か目前の課題があるならそれを、なければ自分の作りたいものを何か決めて、
現在の実力でできる範囲でいいからそれを少しずつ作っていく。
その過程で分からないことが出てくるからそれを随時調べたり、
調べていく過程で興味を持った情報を深く調べてみたりしてれば、自然にレベルアップしていくよ。
62nobodyさん:2007/04/13(金) 17:08:09 ID:???
>>56
おれはソースの可読性をとってreturnでtrueもfalseも書いてる
63nobodyさん:2007/04/13(金) 17:10:38 ID:???
作り方が分からないならまだそれを作る段階にでないという事。
作り出すため何が必要か情報収集して、実際に色々作ってくしかないわな。

ある程度やったら作り始めるのが一番早いだろうし。
64nobodyさん:2007/04/13(金) 17:34:46 ID:???
>>63
すごいよくわかる。
やりたてのころはいきなり掲示板とかメールフォームをつくりたくて教本とか
webからコードぱくってたけどけど、
勉強していくうちに知識をためてくと自分らしい組み立てができるようになった
65nobodyさん:2007/04/13(金) 17:35:33 ID:???
どうでもいいはなしだけどPHPのはじめの一歩はHello Worldでもなくてphpinfoだと思う。
66nobodyさん:2007/04/13(金) 17:52:17 ID:???
便乗するけどシンプルで読みやすい定番て無いの 初心者向けの
前質問したらどれでも好きなの嫁って言われて困ってphpshotの掲示板読もうとしたけどよく読めなくて
今はとりあえずレッツphpの掲示板読んでる
作りたいのは掲示板じゃないんだけど掲示板の動作が参考になるかなと思って

こうしたらもっと効率よく出来る ってより こういう場合は定番としてこういう処理する ってのが知りたい
公開されてるものが腐るほどあるのはわかる でもどれ見ていいのかよくわかんないんだよ
67nobodyさん:2007/04/13(金) 18:07:01 ID:???
マニュアルの関数の載ってるページみて使い方覚えろ。
まずは配列関数のarrayから。その次にempty。その次に・・・
と順番にこなしていけ
それでおぼえる
68nobodyさん:2007/04/13(金) 18:09:26 ID:???
>>66
まさにそれです。
技術者は先生に向かないな。
69nobodyさん:2007/04/13(金) 18:12:14 ID:???
>>66
ひとつ、ひとつ作りこんでいけばいいだけだよ。

まずはフォームに入力したデータをcsvファイルに書き込む、
次にそのcsvファイルをHTMLで一覧表示する、
次に10件ずつデータを表示して「次のページ」のリンクを表示させる。。。
という感じで。

まず何を作りたいか設計して、順番に作っていくのが基本だから、
その作業の中で、そこはどう処理しているのか参考になりそうなスクリプトを
見ていけば理解は早いかと。というより初心者向けの本を何冊か手元において
おけば、必ず分かりやすい解説がどこかの本にあるとおもう。

あとはばかばかしいかもしれないけど、参考にしたいスクリプトをそのまま
模写、つまり打ち直す。厳しいけどそれが習得の基本らしいよ。
70nobodyさん:2007/04/13(金) 18:12:30 ID:???
>>58
SNSを作る程度のプログラミングなら理系である必要は全く無い
71nobodyさん:2007/04/13(金) 18:16:00 ID:???
PHPでプログラム書く奴に過度の期待してもだめだと思うぞ...
プログラムセンスある奴にはウケが悪い言語だからw
72nobodyさん:2007/04/13(金) 18:18:11 ID:???
>>71
それは他の言語でも言ってるやついないかw
PerlでもPythonでもさw
73nobodyさん:2007/04/13(金) 18:18:47 ID:???
仕事で他人のを読まないといけない場合や、部分的に参考にするなら話も変わってくるが、
他人の書いたソースを一から読み進めるのってよっぽど読みやすい書き方してない限りはただの苦行だぞ
74nobodyさん:2007/04/13(金) 18:19:00 ID:???
phpspotは知らんけどレッツPHPのスクリプトって古すぎじゃないか・・・?

他のスクリプトを読むのはいいけどその背景となってる考えを理解しないと最悪な勉強法だぞ。
掲示板作るために何をすればいいかさっぱり分からないうちは、ソースを読むことではなくもっと基礎を学ぶ時期だと思うが。

ちなみに定番を知りたいならマニュアルが最高にお勧め。
75nobodyさん:2007/04/13(金) 18:21:22 ID:???
最初なんてなんでもいいよ
適当にソース拾ってきてごちゃごちゃいじってりゃ
嫌でもわかるようになるだろ
悩む暇があったら読め書けそして動かせ
76nobodyさん:2007/04/13(金) 18:24:25 ID:???
>>66
>こういう場合は定番としてこういう処理する
具体的にどの場合か、ここで質問しちゃうほうがいいんじゃないの?
5通りぐらい方法が出てきたら笑うけどw
77nobodyさん:2007/04/13(金) 18:35:38 ID:???
定番がどうとか、効率がどうとか最初のうちから気にする必要無い
ちゃんとローカルなテスト環境作って、とりあえず動かすことだけ考えて前に進みまくれ
あまりにもおかしい書き方はそのうち気付く
78nobodyさん:2007/04/13(金) 18:35:49 ID:???
phpspotやレッツPHPに載ってるスクリプトのソースなんてゴミだよ
むしろ変な癖つくから絶対参考にしないほうがいい気がする
79nobodyさん:2007/04/13(金) 18:40:22 ID:???
一通りのパターンだけ覚えて効率よく覚えていこうとするから遠回りになることを初心者は気づかない
80nobodyさん:2007/04/13(金) 18:55:57 ID:???
トライ&エラーに勝るものなし
81nobodyさん:2007/04/13(金) 18:57:31 ID:???
理論さえ学べば実現方法なんていくらでもあるというのにね。
定番とか気にせずにまず作れというのは同意。
82nobodyさん:2007/04/13(金) 19:20:42 ID:???
>>68
手取り足取り教えてもらっても、全く自分のためにならない。
人に聞いてしか問題を解決出来ないならプログラムなんか出来ないよ。

ヒントや自分で探す術を覚えない限り、教えてもらって終わり。

そのレベルに達していないなら、まずは気に入ったテキストとマニュアルと関数逆引きを読んでみるべき。
83nobodyさん:2007/04/13(金) 19:40:35 ID:???
WindowsVistaがほしい

名前で検索する→ひっかかったサイトを自分で見に行って時間をつぶす

【ほしい】を【買う】へ→【買う】から【ショッピング】に変換する

でてきたサイトをチェック

ヤフーショッピングでWindowsVistaが買えることがわかったが、
いろんなバージョンがあってどれを買えばいいのかわからない。

検索キーワードを変えて振り出しにもどる


上級者だってはじめから何でもわかるわけでもなかったんだ。
何か壁にぶつかったら自分で検索して調べる能力があるだけでも効率があがるから
84nobodyさん:2007/04/13(金) 19:46:42 ID:???
>>78
でも他の人がどう処理しているのかは気になる。
今、プログラム系の学校とかどうなんだろ。
チュートリアルをこなすだけなのかな?
自分のスクリプトを評価してくれる人はちょっと欲しい。
85nobodyさん:2007/04/13(金) 19:47:55 ID:???
プログラムの評価なんてバカげてます
86nobodyさん:2007/04/13(金) 20:10:11 ID:???
>>73
トレースって意外と大事よ
C言語検定の1級とかだるかった
87nobodyさん:2007/04/13(金) 20:12:46 ID:???
はいはいそうだね
88nobodyさん:2007/04/13(金) 20:13:58 ID:???
C言語検定が既に大事じゃない
89nobodyさん:2007/04/13(金) 20:17:19 ID:???
>>84とか>>86がプログラミング楽しいとか思ったことあるのかが気になるな
プログラミングヲタになれないと続かないし伸びないよ
90虚弱PHP:2007/04/13(金) 20:21:18 ID:???
PHP Webアプリの参考ソースは、フレームワークじゃない?
俺はソース読んだことないけどw

定番とかは確かに知りたくなるもんだけど、
その前にスパゲッティソース作ってにっちもさっちもいかなくなる経験はした方がいいと思う。
91nobodyさん:2007/04/13(金) 20:27:51 ID:???
結論:楽してプログラムが身に付くと思うな
92nobodyさん:2007/04/13(金) 20:44:51 ID:???
まー自分にあったやり方でできる範囲でやりゃいいよ
93nobodyさん:2007/04/13(金) 20:48:57 ID:???
>>90
てか、今まさにその状況だw
すぱげっちーすぎてヤバイことになりだしてる
9466:2007/04/13(金) 21:23:47 ID:???
みんなありがと 全レスしないけれど参考にする

自分なりにどんどん書いて動いた。
動かないときは手直ししていけばそれでよかったんだけど逆に動いてるときに
これでいいのかな?何かまずい処理してなかったかな?
って気になって他人の定番のソース見るのがいいかと思ったんです
定番と比べて抜けてる処理があれば自分の見落としがわかるかなあと。

自分で気付くようになるまで放置で大丈夫なんですね。ありがと
95nobodyさん:2007/04/13(金) 21:26:22 ID:???
いやダメだけどw

まぁ遊びならいいんか
96nobodyさん:2007/04/13(金) 21:50:11 ID:???
どっちにしろ人の見たり、見せたりしたほうがいい。

だからショボイのでもソース公開したほうがいいよ。
小粒でも人の役に立つのを書くとかね。

欠点を突っ込んでもらったほうがいい。
短ければここでソース晒すとかね。



第二回 自作スクリプト発表会【PHP】
ttp://pc11.2ch.net/test/read.cgi/php/1156116687/
とかもある。
97nobodyさん:2007/04/13(金) 22:42:30 ID:???
見せるのはただ他人の意見に耳を傾ければそれでいいけれど、
早く読むのはそれなりにコツみたいなものが必要だからヒマなときにでも磨いとくといいよ。
ctagsとかそういうたぐいの物の扱いに慣れとくとかね
98nobodyさん:2007/04/13(金) 23:29:51 ID:???
あれだ、ペアプログラミングでもやってろってこった
99nobodyさん:2007/04/14(土) 00:13:17 ID:???
>>98
新卒の娘とペアプログラミングあ;sjdlkふぁ;sljふぁ;うぃf!!!!!!
100nobodyさん:2007/04/14(土) 04:02:34 ID:??? BE:1015106887-2BP(396)
このプログラムで$noline=file('comment.txt');から
以後の処理はロックかかってる事に
なってるんですかね?
ロック解除まで

$cwlog=fopen("comment.txt","a+");
flock($cwlog,LOCK_EX);
$noline=file('comment.txt');
$nocount=count($noline)-1;
$bno=explode("\t",$noline[$nocount]);
$no=$bno[0]+1;
$cwdata="$no\t$name\t$contents\t$time\t$delkey\n";
fputs($cwlog,$cwdata);//$wlogの最初の行に$wdataを追加
flock($cwlog,LOCK_UN); //ファイルロック解除
fclose($cwlog);//ファイルを閉じる
101nobodyさん:2007/04/14(土) 05:40:57 ID:???
>>100
fclose前のロック解除は不要だしあまり推奨もされない。
バッファフラッシュ前にロックを解除しちゃあかんよ。
fcloseすればバッファをフラッシュした上でロックも自動解除してくれる。

flockでのロックは「他のプログラムも同じ方法でロック処理をしてくれている」
という前提で使うものだが、それが満たされているなら特に問題はないかと。
NFS環境とかでは正常動作しなくなったりするけどな。
102nobodyさん:2007/04/14(土) 06:07:20 ID:???
>>89
WEB制作はプログラムのスキルだけじゃだめだからねえ。
PHP使えるWEBデザイナーも増えてきてるし、WEB制作の中の
ひとつの技術としてとらえるのが普通じゃねえかな。
オタプログラマーじゃなくてWEB制作オタなんだよね。
103nobodyさん:2007/04/14(土) 09:19:06 ID:???
>>102 PHP使えるWEBデザイナーは センス無いからPHPを覚えるわけだが・・・。
104nobodyさん:2007/04/14(土) 09:49:01 ID:NyirOBTJ
>>103
俺のことか
105nobodyさん:2007/04/14(土) 09:53:14 ID:6mTTKqeL
他人の部屋を盗み見て喜んでいる変態どもの癖に
いっちょ前に
善人面こいて偉そうに他人を評価できると思っている
ずうずうしい滑稽な
糞団地住民ども死ね。
106nobodyさん:2007/04/14(土) 12:15:24 ID:Okv6CUFW
スレタイ通り下らない質問を二つほどさせてくれ。

1.クラスや関数・変数などのネーミングはPascal Camel どちらが推奨、というか基準みたいなのある?

2.if とか foraech とか(自作問わず)関数とかで使う半角スペースってなんか基準ある?
if($i=0) //スペース全くなし
if ( $i = 0 ) // ()の前にも、()内の前後にもスペースあり

我ながらくだらね〜質問かと思うけど、プログラマーさんなら結構いいたいことがあるかな〜と期待してw
107nobodyさん:2007/04/14(土) 12:20:02 ID:???
>>106
PEARとかZFのコーディング規約を見ればいい
その質問の答えも全部書いてある
108nobodyさん:2007/04/14(土) 12:28:30 ID:???
>>106
PEARとかZFのコーディング規約を見ればいい 
その質問の答えも全部書いてある 
109nobodyさん:2007/04/14(土) 12:34:53 ID:???
>>103
逆だ。
技術を次々と習得できる人間はだいたい優秀なんだよ。
デザインセンスのないやつはPHPを覚えるセンスもやっぱりない。
最近は才能格差が激しいね。
110nobodyさん:2007/04/14(土) 12:40:44 ID:???
PHPとは
下等生物に相応しい下等言語。
HTMLに毛が生えた程度のレベルであり中学生でもマスターできる。
むしろPHPを覚えることは恥である。
このような恥ずかしい言語をマスターしていい気になってるやつは
(ry
111nobodyさん:2007/04/14(土) 12:45:51 ID:???
>>109
だめなやつはなにをやっても…

>>110
中学生でも使える言語をマスターしてないお前は
世間の笑いものだな…
112nobodyさん:2007/04/14(土) 12:46:27 ID:???
こういうことを仕事にする場合は少しでも関係のある事柄は積極的に勉強する方がいいね
専任のWebデザイナーやネットワーク技術者が居てもね
プログラミングヲタでもWeb製作ヲタでもいいけど、ヲタがヲタ知識を増やす要領で勉強する方が楽しいし伸びるよって話

>>110みたいなタイプのヲタではダメだけどねw
113nobodyさん:2007/04/14(土) 13:33:56 ID:xk0Q7Wzm
http://dream.lib.net/room/next.html
このひとってまだ生きてるの?
114106:2007/04/14(土) 16:08:13 ID:???
流れをぶった切ってレスサンクス。

推奨する記述ってあったのね、勉強になった。

ところで foraech とか書いている俺はアホですか。
115nobodyさん:2007/04/14(土) 16:23:45 ID:???
ふげ 命名規約ってちゃんとあるのね
勉強になりました
116nobodyさん:2007/04/15(日) 01:06:25 ID:???
外部のサイトを取得したいのですが、下記のようにエラーがでます。
試しに別のサーバを利用してみたら、正常に取得できました。

allow_url_fopen は On になってます。
どこか設定の違いだと思うのですが、
他に設定が必要な所ってありますか?
詳しい人、教えてください。

Warning: file_get_contents(http://www.example.com/) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /****/test.php on line 4

$url = "http://www.example.com/";
$file = file_get_contents($url);
print "$file";
117nobodyさん:2007/04/15(日) 01:08:14 ID:???
>>116
ID出したら答えてやる
118nobodyさん:2007/04/15(日) 01:08:51 ID:ULXkJ/GO
外部のサイトを取得したいのですが、下記のようにエラーがでます。
試しに別のサーバを利用してみたら、正常に取得できました。

allow_url_fopen は On になってます。
どこか設定の違いだと思うのですが、
他に設定が必要な所ってありますか?
詳しい人、教えてください。

Warning: file_get_contents(http://www.example.com/) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /****/test.php on line 4

$url = "http://www.example.com/";
$file = file_get_contents($url);
print "$file";
119nobodyさん:2007/04/15(日) 01:10:45 ID:???
>>118
さぁな
自分で考えろ
120nobodyさん:2007/04/15(日) 01:12:48 ID:???
嫌われてるだろw
121nobodyさん:2007/04/15(日) 01:23:01 ID:???
>>118
ちゃんと403が返ってきてるじゃん
122nobodyさん:2007/04/15(日) 01:32:24 ID:???
ま・まさかまた、example.comって落ちじゃw
123nobodyさん:2007/04/15(日) 01:33:40 ID:???
違うならきちんとテストしたソースを全部張ってね。
行数沢山あるなら、小さく抜き出してテストしてから張ってね。

多分これを自分でやるだけで解決したりするだろうな。
124118:2007/04/15(日) 01:45:33 ID:???
>>122-123 もちろん、実際のURLは http://www.example.com/ ではありません。
125nobodyさん:2007/04/15(日) 01:46:40 ID:???
IDだせと言われたレスにたいしてコメントもせずに
IDだしてまた同じ内容で投稿してるのはDQN認定
126nobodyさん:2007/04/15(日) 01:51:21 ID:???
ID出てないからニセモノだな

URLはgoogleとか絶対繋がるのでテストしてるんだよね?

とにかくきちんとテストしたソースとエラーをまんま出すのが早い。
127nobodyさん:2007/04/15(日) 01:54:05 ID:???
fsock関数使えば?
128nobodyさん:2007/04/15(日) 01:56:01 ID:???
>>126
つながってるだろ。>>118の希望とは違う返事が来てるだけ。
129118:2007/04/15(日) 02:02:33 ID:ULXkJ/GO
>>125-126

度々失礼しました。

Yahoo!やGoogleは正常に取得できます。
http://www.yahoo.co.jp/
http://www.google.co.jp/


以下、実行したソースとエラーです。

<?php
$url = "http://www.megaview.jp/";
$file = file_get_contents($url);
print "$file";
?>

Warning: file_get_contents(http://www.megaview.jp/) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/****/****.php on line 3
130nobodyさん:2007/04/15(日) 02:09:02 ID:???
たんにそこからPHPでの接続が拒否されてるんじゃね。
っていうか403の意味調べた?

>>127とかPEARでなんとかなるんじゃない
131nobodyさん:2007/04/15(日) 08:15:42 ID:???
単に>>129が使ってる、そのスクリプトホスト(あるいはそのプロバイダの関連IP全体)
からのアクセスが禁止されてるだけじゃないの?
132nobodyさん:2007/04/15(日) 11:33:04 ID:???
>○○じゃね?
>○○じゃない?
>○○じゃないの?
自信がないなら答えんな
わかるまでROMってろよ

>403の意味調べた?
は?それくらい知ってるっつーの

まともに答えられる人いねーの?
133nobodyさん:2007/04/15(日) 11:40:00 ID:???
分かりやすい釣りだな
134nobodyさん:2007/04/15(日) 12:12:42 ID:???
いつもの人ですね
135nobodyさん:2007/04/15(日) 12:14:41 ID:???
バレてないとでも思ってるんですかね
136nobodyさん:2007/04/15(日) 14:27:17 ID:Y+7wtgW4
>>101
お返事遅くなりました、
大変に参考になりました
本当にありがとうございました。
137nobodyさん:2007/04/15(日) 17:30:46 ID:???
さて厨房が多くなる時間になりましたよ
138nobodyさん:2007/04/15(日) 17:59:40 ID:???
Yahoo・Skype・GoogleTalkなどのボイス&ビデオチャットができるメッセンジャーのIDを登録表示させて目的ごとにマッチングさせるサイト作りたいんです。
(出会い系ではありません)
一行掲示板の改造がいいかと思うのですが、スクリプトやアドバイスありましたらお願いいたします。
139nobodyさん:2007/04/15(日) 18:02:55 ID:???
特にありません
140nobodyさん:2007/04/15(日) 18:31:28 ID:???
>>139
ちょっとぐらいアドバイスしてやれよ。

>>138
うーむ。特にないね。
141nobodyさん:2007/04/15(日) 18:33:49 ID:???
>>138
改造の前に、一行掲示板作ってみて仕組み勉強しろ
142nobodyさん:2007/04/15(日) 18:34:59 ID:???
その通りですね
143nobodyさん:2007/04/15(日) 18:40:46 ID:???
>>142
まぁ、すぐに作りたいなら改造でもいいと思う
俺も最初はすぐに高性能の掲示板を作りたくて、
できたところで穴だらけだったがな
144nobodyさん:2007/04/15(日) 19:11:56 ID:???
というか、一行掲示板ぐらい自分でプロト作れんやつが
まともな改造とかできるわけないだろう。
145nobodyさん:2007/04/15(日) 19:45:57 ID:???
一行掲示板なんて数十行でかけるんだからそのくらい勉強しろ。
わからなくなったらここで聞け。
最初から何もしないで聞くなバカ
146nobodyさん:2007/04/15(日) 20:53:39 ID:R8yXAJQX
PHP4とPHP5を共存したいとおもいましてCGIで実行できる形でインストールしたいのですが、
モジュールとして実行することに対して、
パーミッションの設定と速度の面を除いて何か制限されることはあるのでしょうか?
147nobodyさん:2007/04/15(日) 20:56:53 ID:u9QEq4CQ
WAPM環境で開発している人に質問です。

自分はウェブデザインの勉強をしていたのでDWを使っているのですが、
WebプログラマとしてはDWは不評のようで・・・

何のソフトを使っていますか?
148nobodyさん:2007/04/15(日) 20:57:46 ID:???
>>145
ごもっともですが、いいアドバイスあればみっけもんでしょ。
それと、スレタイ。
149nobodyさん:2007/04/15(日) 20:58:32 ID:???
PHPを片手間に嗜む学生ですがwordやpowerpointなどを良く使ってます
150nobodyさん:2007/04/15(日) 20:59:02 ID:???
>目的ごとにマッチングさせるサイト
とあるが、つまり目的別でユーザーのIDを表示するってことかな?
だったら、データベース使わないと厳しいかも
151nobodyさん:2007/04/15(日) 21:02:23 ID:???
>>147
それは実行環境のこと?
XAMPPで検索してごらん。便利よ。
ソフト板にもスレあるから。

あ、いや、エディターですね。
Ecripsなんかは有名ですね。

ちなみにMSがDWみたいなもん作ったらしい。
こちらもスレがある。
どこだったっけ。
探してくださいな。
152nobodyさん:2007/04/15(日) 21:03:31 ID:???
>>150
いや、目的は最初からページごとに分けるんでDBは必要ないかと。
153nobodyさん:2007/04/15(日) 21:04:43 ID:???
>>147

べつにdreamweaverでいいと思うよ。
正規表現、ツリー表示、コード保管しか使ってないけどSOHOとして仕事してるよ。
デバックはできないけど、・・あっても必要ないと感じてる。
会社に勤めてたころはEclipseでPHPコード書いてたけどべつに今は別にイラネ。


ようは使う人の効率があがれば何使ってもいいんじゃないの?
154nobodyさん:2007/04/15(日) 21:06:45 ID:???
>>150
関係ないだろ。
155nobodyさん:2007/04/15(日) 21:07:21 ID:???
>>147
phpspot.net
で配布してるの使ってる。
PHP専用でプロジェクト用とPHPファイルに関連づけできるスタンドアローン版がある。
スタンドアローン版はDWなど他エディタ使ってる人もインストして関連づけるとファイルからそのままダブルクリックで開けるからいいよ。
156nobodyさん:2007/04/15(日) 21:10:25 ID:???
作者の宣伝イラネ
157nobodyさん:2007/04/15(日) 21:11:06 ID:???
※豆知識
Donut RAPTの作者もPHPエディタを使ってます。
158nobodyさん:2007/04/15(日) 21:11:45 ID:???
はいはい
159nobodyさん:2007/04/15(日) 21:13:25 ID:???
どなたか>>138おながいします
160nobodyさん:2007/04/15(日) 21:15:40 ID:???
気になったんだが
DWいじると、HTMLでの作成ではPHPカラーつかないけど
PHPではつくよな?
PHPでHTMLのカラー+PHPのカラーがつくような設定ってないの?
161nobodyさん:2007/04/15(日) 21:18:07 ID:???
>>147
BBSとかちょっとした物作るならTeraPadあれば十分すぎる
ある程度大きいもの作るなら俺はEclipseかな?
まぁ、デバッガ使わずにprintデバッグしてるけどねorz

Windowsだからあんまり使わないだろうけどLinuxならvi最強
162nobodyさん:2007/04/15(日) 21:47:33 ID:???
>>160
色分けはxmlに設定が記されてるから直接いじればできるよ
163nobodyさん:2007/04/15(日) 22:01:45 ID:y9EClMBI
http://www.dotup.org/uploda/www.dotup.org1535.txt

出力
「INSERT test INTO test1='test1', test2='test2', test3='test3', test4='test4'」

エラー
「You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INTO test1='test1', test2='test2', test3='test3', test4='test4'' at line 1」

このように、SQL文の一部「test INTO」が消えてしまいます。
function内から別のfunctionを呼び出すとそうなる仕様なのでしょうか?
164nobodyさん:2007/04/15(日) 22:09:08 ID:???
165nobodyさん:2007/04/15(日) 22:10:16 ID:???
>>163
エラー文には「SQL構文にエラーがあるよ」って書いてるので
SQLのinsert構文をもう一度確認してみてはいかがですかね
166387:2007/04/15(日) 22:12:18 ID:???
>>159
2ちゃんっておもしろいね、やっぱ。
ID表示されないことを利用して成りすます奴が居るとは。
167nobodyさん:2007/04/15(日) 22:16:23 ID:y9EClMBI
>>165
ありがとうございます
基本的な構文ミスでした。
INTOをSETで解決しました。

INSERT INTOと
INSERT SETは
どちらを使ったほうがいいんでしょうか・・・
自分はSETのほうが使いやすいのですが
168:2007/04/15(日) 22:16:39 ID:???
名前:387は
>>138の間違い

ややっこしい事になってしまった。
169nobodyさん:2007/04/15(日) 22:23:21 ID:???
それなんてPHP?
170nobodyさん:2007/04/15(日) 22:23:28 ID:???
>>156
実際居るから仕方ないんだけど、状況証拠のチリすらない段階で宣伝扱いするの、いくら2ちゃんでもやめないか?
裏付けや根拠すら全く無い段階でこれいうのって2ちゃんでいう池沼ってやつなんじゃ?
だいたい、作者とするにはタイミング良すぎないか?この実況板と化している当スレでは。
171nobodyさん:2007/04/15(日) 22:28:23 ID:???
イイヨイイヨー
172nobodyさん:2007/04/15(日) 22:30:10 ID:???
釣り針が太すぎてもダメです
173nobodyさん:2007/04/15(日) 22:32:42 ID:???
以下、クマのAA禁止↓
174nobodyさん:2007/04/15(日) 22:34:06 ID:y9EClMBI
再度質問お願いします。

includeで絶対パスで指定したとき、
URL file-access is disabled in the server configuration
とエラーが返ってきます。
ファイルはちゃんとあるのですが、何かphp.iniで設定が必要なのでしょうか?
(例えば、外部からのincludeを許可など・・・)
175nobodyさん:2007/04/15(日) 22:35:01 ID:???
>>174
絶対パスとURLは別物
176nobodyさん:2007/04/15(日) 22:37:03 ID:y9EClMBI
>>175
http://からではなくE:〜での記述で実行できました。
ですが、URLでの指定ではダメなのでしょうか・・・?
177nobodyさん:2007/04/15(日) 22:39:09 ID:???
>>176
逆にどうして問題にならないと思ったのか聞かせてくれ
178nobodyさん:2007/04/15(日) 22:40:39 ID:???
179nobodyさん:2007/04/15(日) 22:44:10 ID:y9EClMBI
DOCUMENT_ROOTだと、外部からのアクセスによっては何か変わってしまうのかなと思ったので・・・
180nobodyさん:2007/04/15(日) 22:49:58 ID:???
>>179
何かって何?
181nobodyさん:2007/04/15(日) 22:51:53 ID:???
UTF-8とutf8って何か違いあるの?
182nobodyさん:2007/04/15(日) 22:53:16 ID:???
手元のPHPのソースでgrepしたらこうなってた。
PHPAPI php_stream_wrapper

if (wrapper && wrapper->is_url && !PG(allow_url_fopen)) {
 if (options & REPORT_ERRORS)
  php_error_docref(NULL TSRMLS_CC, E_WARNING, "URL file-access is disabled in the server configuration");
 return NULL;
}
要は、渡しているパラメータ(wrapper)やPHPそのものの設定(allow_url_fopen)によるってこった。
183nobodyさん:2007/04/15(日) 23:08:44 ID:???
当スレ、のろのろ実況板ってスレタイにいれるべきかと
184nobodyさん:2007/04/15(日) 23:12:58 ID:???
くだらない質問です。

<form method=post action=hogehoge>
<input type=hidden name=hoge value=hoge>
<input type=submit value=go>
</form>

このpostで送信されるデータを連続投票したい場合どうしたらいいでしょうか?
知識の向上として知っておきたいのですが
一応これを実行してpostで送信すると投票先のスクリプトに移動して
再度戻ってまたgoをクリックしないと連続投票できませんよね?
これを1回実行するだけで100回POSTのデータを送信することは可能でしょうか?
185nobodyさん:2007/04/15(日) 23:15:32 ID:???
>>184
とりあえずID表示
186184:2007/04/15(日) 23:17:46 ID:P44SZArS
はぁ
>>185
じゃ、よろしく
187nobodyさん:2007/04/15(日) 23:19:46 ID:???
100 回 for で回せば良いと思うよ^^
188nobodyさん:2007/04/15(日) 23:20:22 ID:???
その程度のスキルで荒らしはよくないからやめろ。
どこに向けて打つのかしらないが対策されてるから無駄
189184:2007/04/15(日) 23:21:24 ID:P44SZArS
POSTのデータをどうやってforでまわすの?
190nobodyさん:2007/04/15(日) 23:22:57 ID:???
終了
191nobodyさん:2007/04/15(日) 23:25:17 ID:???
楽しいなこのスレは
192184:2007/04/15(日) 23:26:26 ID:P44SZArS
>>188
100%言われると思ったけど、知識として知ってるほうが対策もできるので知りたいだけだから。
100%言われると思ったから書いたはずなんだけどな…
まあそれはいいとして、どうやってforで回すのか知りたい。
わざわざID出したので、よろしく。
193nobodyさん:2007/04/15(日) 23:30:02 ID:???
for ($i = 0; $i < 100; $i++) {
    処理;
}
194nobodyさん:2007/04/15(日) 23:31:22 ID:???
テラ親切www
195nobodyさん:2007/04/15(日) 23:37:35 ID:???
現在のスコープ内の全ての変数を返すような関数はあるでしょうか
例外クラスの getTrace() のようなものです

スコープ内で処理に使用する変数を、$var[] とった配列にまとめておき、
print_r すれば良いだけかも知れませんが、あれば教えてください
196184:2007/04/15(日) 23:38:44 ID:P44SZArS
その”処理”の部分を聞いてます
もう1度言いますよ?
その”処理”の部分を聞いてます
さあ説明よろしくwww
197nobodyさん:2007/04/15(日) 23:42:39 ID:???
>>196
サーバーサイドは1回の送信につき1回のリクエストだから
100回送信すればいいと思う

ここまで言えばわかるだろ
198184:2007/04/15(日) 23:47:09 ID:???
ははは。もういいよ。
わからないならわかりませんって言えw
このカスどもが
199184:2007/04/15(日) 23:48:10 ID:???
>100 回 for で回せば良いと思うよ^^

こいつテラワロスwww
200nobodyさん:2007/04/15(日) 23:56:26 ID:???
>>198
OKWaveへGo
201nobodyさん:2007/04/15(日) 23:59:33 ID:???
184言語障害乙
202nobodyさん:2007/04/16(月) 00:02:30 ID:???
>>184
相手側のスクリプトに依って変わる
その荒らしたいページはどこだよ?
203nobodyさん:2007/04/16(月) 00:10:16 ID:???
>>202

もうやめましょう
204nobodyさん:2007/04/16(月) 01:19:47 ID:???
>>184
丸投げスレと質問スレの違いを理解してから書き込んでね
205nobodyさん:2007/04/16(月) 02:55:10 ID:???
知識の向上wwwwwwwwwwwwwwwwwwwwwwwwwwww
206nobodyさん:2007/04/16(月) 03:31:41 ID:???
微笑ましいな。
207nobodyさん:2007/04/16(月) 11:36:16 ID:???
こんな馬鹿まだいたのかw
208虚弱PHP:2007/04/16(月) 12:26:49 ID:???
209nobodyさん:2007/04/16(月) 12:29:42 ID:???
荒らし助長するんなよ虚弱PHP
210虚弱PHP:2007/04/16(月) 12:52:01 ID:???
「教えるからもうくんな」の意
211nobodyさん:2007/04/16(月) 13:01:04 ID:???
なんて無責任な
212nobodyさん:2007/04/16(月) 13:57:58 ID:???
mysql_queryでmysqlにデータを入れる際ロックは必須なのでしょうか?
DB板で聞くのが正解かもしれませんが、お願いしますm(_ _)m
213nobodyさん:2007/04/16(月) 14:10:41 ID:???
insertのことならいらない。
複数のテーブルに書きに行くのならtransactionをかけたほうがいいかもしれない。
214nobodyさん:2007/04/16(月) 16:35:09 ID:???
classの所を読んでいるのですが、使用するにいたって利便性は何なんでしょう?
セキュリティ面とか、新しいプログラム使いまわせるとかではなく
単一のphp内において、もっと身近な部分で言うと…。
215nobodyさん:2007/04/16(月) 16:42:47 ID:???
>>208
教えていいことと悪いことぐらいは考えてもらいたいですね
216nobodyさん:2007/04/16(月) 16:43:29 ID:???
>>214
あるひとつの機能が必要とするデータと処理をまとめて管理できること
217nobodyさん:2007/04/16(月) 16:53:27 ID:???
SSLが使えるレンタルサーバを2種類借りているのですが、
片方では、httpsプロトコルで、echo $_SERVER['HTTPS']; とやると、onと表示されて、
SSLが有効なのがわかるのですが、
もう片方は、ブラウザに鍵マークはつくものの何も返って来ません。
$_SERVER['HTTPS']の説明をみると、
「スクリプトが HTTPS プロトコルを通じて実行されている場合に 空でない値が設定されます。 」
とあるので、正常に機能していないということでしょうか?
それともサーバ側の設定で、何も返さないようにしているとかそういうことでしょうか?
218217:2007/04/16(月) 16:54:21 ID:N9diKUei
癖でsageてしまいました。すみません。
219nobodyさん:2007/04/16(月) 16:56:33 ID:???
>>217
WEBサーバーがSSLをサポートしていると言う事と
PHPがSSLをサポートしていると言う事じゃ全く持って話が違う。

後者はWEBではサポートしているけどPHPじゃサポートしてないんでしょ
220nobodyさん:2007/04/16(月) 17:03:07 ID:???
phpのsslはまだベータ版だしね
221217:2007/04/16(月) 17:03:26 ID:N9diKUei
>>219
なるほど。そういうことですか。
ではサーバのPHPをかえてもらわないとダメになるわけですね。
MySQL+PHPを使ったログイン機能があるサイトを作ろうと思っているのですが、
そのログインページ(PHPでできた)でSSLをつかいたいと思ったのですが、
PHPでSSLをサポートしなくても、Webでサポートしていれば、
入力された情報はちゃんと暗号化してくれるのでしょうか?
222nobodyさん:2007/04/16(月) 17:24:09 ID:???
>>221
当たり前だけどしてくれるよ
PHPでSSLを使うって事はプログラムで内部でhttpsなURLに対して
リクエストを送る事が可能になったりするってことだ。
223nobodyさん:2007/04/16(月) 17:25:38 ID:dwzdMgji
ttp://php.netからPHPをダウンロードしようとしたのですが
「Windowu Binaries」の「PHP 5.2.1 zip package」をクリックすると
タイムアウトしてしまいます。

みなさんのところからはダウンロードできますか?
224nobodyさん:2007/04/16(月) 17:27:23 ID:???
できる。
時間帯ずらしてダウンロードをためしてみたらいいよ
225217:2007/04/16(月) 17:28:07 ID:N9diKUei
>>222
ひとつ勉強になりました。これで一安心です。
早速プログラムを組みたいと思います。
どうもありがとうございました。
226nobodyさん:2007/04/16(月) 17:51:24 ID:???
>>あるひとつの機能が必要とするデータと処理をまとめて管理できること
なんだかクラスを使った場合と使わない場合がうまく想像できないのです
227nobodyさん:2007/04/16(月) 18:00:38 ID:???
グローバル変数使わなくてもすむだけでも、利便性があるよ。
228nobodyさん:2007/04/16(月) 18:09:26 ID:???
>>6
必死だなw
229nobodyさん:2007/04/16(月) 18:21:04 ID:???
あれ?全角ひらがなって1文字3byteもあるの?
230nobodyさん:2007/04/16(月) 18:26:19 ID:???
Unicode
231nobodyさん:2007/04/16(月) 18:29:11 ID:???
てっきり2byteかと思ってた
232nobodyさん:2007/04/16(月) 18:35:08 ID:???
SJISやEUCは2byte、UTF8は3byteかな
日本語に関しては
233nobodyさん:2007/04/16(月) 18:40:47 ID:???
%E3%81%9D%E3%81%86%E3%81%A0%E3%81%AA
234nobodyさん:2007/04/16(月) 19:10:27 ID:???
%e3%81%ac%e3%82%8b%e3%81%bd
235nobodyさん:2007/04/16(月) 19:45:55 ID:???
>>233-234

最近覚えたんですか?そういう風に書くの
236nobodyさん:2007/04/16(月) 19:51:10 ID:???
exec、又はsystem()でお聞きしたいのですが
別のサーバからFTPでアップされたjpg画像を
上書き保存されない様にmv、cpとfopenはパーミッションの問題でエラーになりました。
そこで、上記コマンド実行前にchmodを入れてみましたがやはりパーミッションの問題が…。
file_get_contentsはPHPのバージョンの問題で使えませんでした。

要は、常に上書き保存されていってしまう画像をリネームして保存しておきたいのですが
上記以外の手法でパーミッションに捕われないような手法はありますでしょうか?
237236:2007/04/16(月) 19:57:10 ID:???
マニュアルみて解決しました。
238236:2007/04/16(月) 20:29:36 ID:Fo/N831C
>>237
ちょw誰だよwww
解決してネーよw
sageってメル欄だとID出ないんね。
メル欄空でもsagaるんかな?
239236:2007/04/16(月) 20:41:35 ID:???
>>238
解決したのに掘り起こすのやめていただけませんか?
240nobodyさん:2007/04/16(月) 20:53:17 ID:???
>>236
それじゃ無理だろうね。FTPの方でパーミッションのread許可の対応するしかない。
FTPのユーザもあなたなら、簡単だけど。
241nobodyさん:2007/04/16(月) 20:57:54 ID:???
>>236
ちゃんとIDださないから3つ分の答えを逃した骨折り損な奴
242nobodyさん:2007/04/16(月) 21:45:30 ID:???
くだらない質問ですが、セフレってどこで探せますか?
243nobodyさん:2007/04/16(月) 21:55:35 ID:ozAmxKpX
echo $_SERVER['SEFRE'];
244nobodyさん:2007/04/16(月) 21:56:06 ID:???
>>243
IDがもうちょっとでDJオズマ
245nobodyさん:2007/04/16(月) 22:43:26 ID:???
MAX(count) AS MAX
東MAX最近みないね、
246nobodyさん:2007/04/17(火) 01:52:56 ID:wSkpW1Us
キャリアを判別しようと思ったのですが

function mobile_agent(){
$agent = $_SERVER['HTTP_USER_AGENT'];
switch ($agent){
case preg_match("/DoCoMo/", $agent):
$agent = "docomo";
break;

case preg_match("/Vodafone/", $agent) || preg_match("/SoftBank/", $agent):
$agent = "softbank";
break;

case preg_match("/KDDI/", $agent):
$agent = "au";
break;

case preg_match("/DDIPOCKET/", $agent) || preg_match("/WILLCOM/", $agent):
$agent = "willcom";
break;

default:
$agent = FALSE;
}
return $agent;
}

auでアクセスすると返り値が「docomo」になります。
switch内でのpreg_matchはダメなのでしょうか?
247nobodyさん:2007/04/17(火) 02:07:43 ID:???
$agentとpreg_match(〜):の返り値が等しければそこが実行されるよ
248nobodyさん:2007/04/17(火) 02:43:45 ID:???
>>246

ゆるくていいならそのままのやり方でも止めはしないけど
IP見て振り分けるほうが確実だよ。
249nobodyさん:2007/04/17(火) 03:26:53 ID:???
UAなんて信用できないんだからIPでチェックしたほうがいいよ
250nobodyさん:2007/04/17(火) 05:38:28 ID:???
何がなんでもIPアドレスでチェックなんて、業者と犯罪者ぐらいなもんだろうなw
251nobodyさん:2007/04/17(火) 06:42:52 ID:???
>>233-234
専用のスレがあるよ
エンコード文字列だけのスレ
http://pc11.2ch.net/test/read.cgi/php/1065258181/
252nobodyさん:2007/04/17(火) 08:52:36 ID:???
>>246

preg_matchの返り値って知ってる? 0か1がかえってくる。

ということは
case 0:
$agent = "docomo";
break;

とかやってくることになる。

switch使うんじゃなくてelseif使うのが良いと思われる。
253虚弱PHP:2007/04/17(火) 09:27:13 ID:???
>>246
Net::UserAgent::Mobile
使うでいいんじゃないでしょうか。
254nobodyさん:2007/04/17(火) 11:24:13 ID:cz59188T
携帯向けのサイト作成してますが、
ヒアドキュメント内でSIDを付加する方法はありますでしょうか?
255254:2007/04/17(火) 11:28:14 ID:???
自己解決しました。
256nobodyさん:2007/04/17(火) 11:40:27 ID:???
自己解決したのはいいが解決法も書いていってよね!ぷんぷん
257nobodyさん:2007/04/17(火) 11:46:09 ID:cz59188T
>>255-256
( ^ω^)お?

気を取り直して、
ヒアドキュメントでHTML部分を出力するのではなく、
<?php ?>と処理後に直接HTMLを書き、↓のように埋め込むか、
<a href="nextpage.php?<?php echo strip_tags(SID)?>">リンク</a>

もしくは、.htaccessが利用できるなら↓がスマートなんでしょうか。
php_flag session.use_trans_sid On

他にはどのような方法がありますでしょうか?御教示ありましたら宜しくお願いします。
258nobodyさん:2007/04/17(火) 12:16:24 ID:wSkpW1Us
>>249
いや、位置情報取得のフォームを出力するんで、
携帯のブラウザによっても変化するからUAじゃないとダメっす
259nobodyさん:2007/04/17(火) 12:33:54 ID:IrxiH2Fq
デザイン用のHTMLにPHPのコードを埋め込んで、WEBシステムとして
公開すると言うのが一般的だと思うのですが、
やっぱりデザインとPHPの分岐・分類って限界がありますよね?

Smartyとか使ってもやっぱり、デザイン用のHTMLにソースを埋め込むわけで。
かといってガチガチのプログラムにすると、後からデザイン面を
修正する時にしずらいし。(CSSを使っても限界あるし)

自分は各パーツをclass分けしてて、「登録内容一覧」とか表示する時は
classを使って必要情報を抽出し、whileで出力してます。

くだ質ですが、作りながら思ったので質問してみました。
260虚弱PHP:2007/04/17(火) 13:05:48 ID:???
>>259
パーツ毎にきちんとテンプレートを分割するだけでも、
デザインとロジックはかなり分離できるよ。

> デザイン用のHTMLにソースを埋め込むわけで。

これは、人によってかなり差が出るところだね。

> デザイン用のHTMLにPHPのコードを埋め込んで

と似たような状態になるなら、
テンプレートエンジンを有効に使えてないと思う。
261259:2007/04/17(火) 13:08:37 ID:???
>>260
テンプレートは分けてますよ。ただ、例えばSmartyの場合でも
<table>
{foreach item=list from=$list}
<tr>
<td>{$list.name}</td>
<td>{$list.date};</td>
{/foreach}
</tr>
</table>

みたいに専用のコードがテンプレートファイルにはいるので、
結局分離出来ていないような気がするんです。
Smartyを知らない人は、SmartyのコードもPHPのコードも変わらないだろうし。
262nobodyさん:2007/04/17(火) 13:21:28 ID:???
> Smartyを知らない人は、SmartyのコードもPHPのコードも変わらないだろうし。
それはない
263nobodyさん:2007/04/17(火) 13:23:58 ID:???
>>262
俺、PHP勉強するまでPerlだのPHPだのJavaだのの
区別付かなかったけどw
264nobodyさん:2007/04/17(火) 13:27:25 ID:???
>>261
それを突き詰めちゃうと完全なHTMLにするしかなくて
完全にHTMLのままでそれをパースして
コードに置き換えてくれるテンプレートエンジンもあるにはあるけど
結局それだとどこがコードに置き換わるのか
一目ではわかりづらくてそれはそれでやりづらいと個人的には思うよ
最小限のループと出力に留めるのが実際の落としどころだと思う
265259:2007/04/17(火) 13:29:42 ID:???
>>262
結構知らない人多いと思いますが・・。

>>264
そうですね。自分も基本的には、パーツ毎に分けてて
includeして読み込んでいるのですが、最近それすら良いのかどうか
よくわからなくなってきました。分離するという意味で。

ただ、おっしゃるようにやっぱり限界はありますよね。
どの程度分離するか考えながらコーティングします。
アドバイスありがとうございました。
266nobodyさん:2007/04/17(火) 13:41:55 ID:???
PHPはHTMLへの埋めこみ言語として出発して、しかもまだその側面はかなり強いから、
PHPで書かれたテンプレートエンジンって屋上屋を架すみたいな印象はあるね。
267nobodyさん:2007/04/17(火) 14:06:31 ID:ZbMg7dcR
CRONが使えないサーバを使っていたのですが、任意の時間にログを取ったり、ファイルを実行したりしたかったので
別にCRONが使えるサーバを契約しました。
CRONで、任意のスクリプトを任意の時間で実行することができるのは知っていて実際アクセス解析などのログ格納などに
使っているのですが、CRONから起動される(シェルスクリプトから起動される)PHPファイルの書き方で、あるページのURLをクリックしたときと同等の効果を期待することができる
スクリプトの書き方はどのようにすればよろしいでしょうか?

今やっていることは、
CRON起動→シェルスクリプトの実行→PHPファイルの実行
という流れです。
そこで、最後のPHPファイルに
<META HTTP-EQUIV="refresh" content="0;URL=http://www.example.com/test.php?param1=0¶m2=1¶m3=1¶m4=0">
という記述をしています。

流れの最後のPHPファイルや、http://www.example.com/test.php?param1=0¶m2=1¶m3=1¶m4=0
に直接ブラウザからアクセスすると、きちんと起動してくれてるのですが
CRONからの起動はうまくいっていない模様です。

268nobodyさん:2007/04/17(火) 14:09:35 ID:ZbMg7dcR
失礼しました。文字化けしているようです。
http://www.example.com/test.php?param1=0¶m2=1¶m3=1¶m4=0 の部分は
http://www.example.com/test.php?param1=0&param2=1&param3=1&param4=0 です。
よろしくお願いします。
269虚弱PHP:2007/04/17(火) 14:14:07 ID:???
>>261
> 結局分離出来ていないような気がするんです。

そういうのは「分離できてる」って表現するのが一般的だと思う。
原理主義に陥らないのが一番。
使ったことないから分からないけど、
デザイナが良く使ってるDreamweaverって
Smarty対応してるんじゃなかったっけ?

>>265
↓こんな考え方もあるみたいね。
http://kaede.to/%7Ecanada/doc/mvc2-framework
270nobodyさん:2007/04/17(火) 15:08:32 ID:???
>>267
前スレにwebcronというやつが紹介されてたのを思い出した
271nobodyさん:2007/04/17(火) 15:34:18 ID:???
PHP4では Domxml PHP5ではDomなんだけどソースを共通化するには
ラッパー関数でも作らないとダメ?
272nobodyさん:2007/04/17(火) 15:47:30 ID:???
>>267
そら<meta>タグを出力しても動かないだろう
出力された<meta>タグを解釈して、動かすのはクライアント側の機能なんだから

PHPの設定にもよるけど、これでいけるだろう
別にreadfileでなくてもいいけど
readfile("http://www.example.com/test.php?param1=0¶m2=1¶m3=1");
273nobodyさん:2007/04/17(火) 15:56:40 ID:???
>>269
>こんな考え方
一見高尚な話しのようにみえるが、一言で言えばラッパでいいじゃん、ということだな。
274nobodyさん:2007/04/17(火) 19:16:53 ID:teAF4U4F
教えて下さい

$temp = array('a','b','c');
echo $temp[2]; // OK
echo array('a','b','c')[2]; // NG

3行目のNGですが、1行で出力するにはどうすればいいでしょうか?
275nobodyさん:2007/04/17(火) 19:19:48 ID:???
>>274
PHPではできません
276nobodyさん:2007/04/17(火) 19:25:41 ID:???
マニュアルも読めないんだ
277nobodyさん:2007/04/17(火) 19:26:58 ID:iyno4+7x
>>274
$temp = array('a','b','c');
echo $temp[2];

を1行で、というか1文で書きたいってこと?
278nobodyさん:2007/04/17(火) 19:34:59 ID:iyno4+7x
function array_pick($array, $key)
{
return $array[$key];
}

echo array_pick(array('a', 'b', 'c'), 2);

とかやるしかないかも。
279虚弱PHP:2007/04/17(火) 19:37:25 ID:???
>>274
簡単に言うとPHPはオブジェクト指向言語ではないということですw
280nobodyさん:2007/04/17(火) 19:47:39 ID:???
配列の定義と表示を同時にやりたいって要求が理解できん
281nobodyさん:2007/04/17(火) 19:50:13 ID:6MazO8z/
最初の設定の段階で設定ファイルを変更してApacheを起動したところ
エラーが出て起動前に終了してしまいます。
OSはWindowsXPで、PHPはphp-5.2.1-Win32です。
apacheはC:\Apacheフォルダにインストールしました。

httpd.exe: Syntax error on line 115 of c:/Apache/conf/httpd.conf: Cannot load C:/php/php5apache2.dll into server: \x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83\x85\x81[\x83\x8b\x82\xaa\x8c\xa9\x82\xa9\x82\xe8\x82\xdc\x82\xd9\x82\xf1\x81B
Note the errors of messages above, and press the <ESC> key to exit. 17...

httpd.confのline 115は↓の通りです。
LoadModule php5_module c:/php/php5apache.dll
LoadModule php5_module c:/php/php5apache2.dll
LoadModule php5_module c:/php/php5apache2_2.dll
LoadModule php5_module C:/php/php5apache2.dll
LoadModule php5_module "C:\php\php5apache2.dll"
それぞれどれか一行を入れ替えて試しました。
どれでも同様のエラーになってしまいます。

また、色々な解説サイト様に以下のような記述を足すように書かれていますが、
解凍した段階でAddModuleの行が一行もありません。
http://allabout.co.jp/internet/database/closeup/CU20040928A/set02.jpg
AddModule mod_php5.c
この行はどこに書けばよいのでしょうか?
(現在は書いていません)

何か見当違いのことを書いていたら申し訳ありません。
ご教授お願い致します。
282nobodyさん:2007/04/17(火) 20:09:17 ID:???
まずそのパスにちゃんとファイル置いてあんの?
283281:2007/04/17(火) 20:14:00 ID:6MazO8z/
>>282
phpフォルダもC直下に置いてあって、中身も解凍したものをそのまま入れています。
phpフォルダを開くと直にdllファイルがあります。
半角の確認もしました。
284nobodyさん:2007/04/17(火) 20:17:21 ID:???
アッパチのバージョンは?
285281:2007/04/17(火) 20:23:42 ID:6MazO8z/
情報が足りず申し訳ありません。
apache_2.2.4-win32-x86-no_sslです。どちらも今日ダウンロードしました。
286nobodyさん:2007/04/17(火) 20:25:09 ID:???
アッー!パチ
287nobodyさん:2007/04/17(火) 20:28:33 ID:???
288281:2007/04/17(火) 20:45:08 ID:6MazO8z/
ありがとうございます!
早速拝見し、↓の部分かと思ったのですが違う部分でしょうか?

Apache モジュールの使用
Apache 2.0 でモジュール版の PHP を使用するには、 以下の行を Apache 設定ファイル httpd.conf に追加してください。

例 6.6. Apache 2.0 でモジュール版の PHP を使用する場合の設定

# PHP 5 の場合
LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php

# php.ini の場所を設定
PHPIniDir "C:/php"

これを足してみたのですが、やはり同じエラーがでます。

それともそういう問題ではなくヴァージョンが合っていないということでしょうか??
289nobodyさん:2007/04/17(火) 21:06:11 ID:teAF4U4F
>>275
あ、そうなんですか

>>277
そうです

>>278-279
なるほど。。。そうなんですか。分かりました。ありがとうございます。

>>280
あなたには理解できないでしょうねぇ、残念ながら。
290nobodyさん:2007/04/17(火) 21:22:23 ID:???
>>289
そんな事も自分で調べられないような奴が大口叩くなよw
291nobodyさん:2007/04/17(火) 21:22:28 ID:???
もう同じネタいいよ
292nobodyさん:2007/04/17(火) 21:36:15 ID:???
PHPのソースを書き換えればおk
293nobodyさん:2007/04/17(火) 21:38:08 ID:???
っていうか、今思ったんだけど、zendエンジソじゃなきゃダメってことはないよな
294nobodyさん:2007/04/17(火) 22:46:47 ID:???
>>289
他はどうでもいいが最後の理由だけ教えてくれ
295nobodyさん:2007/04/17(火) 23:10:20 ID:???
echo foo()()[3]()();
296nobodyさん:2007/04/18(水) 00:15:19 ID:???
>>290
あ、傷ついちゃいました?

>>294
簡単に言うと>>290はオブジェクト指向の発想ができないということですw
297nobodyさん:2007/04/18(水) 00:16:57 ID:???
こういう低スキルほど大口叩くって本当だなw
298nobodyさん:2007/04/18(水) 00:21:17 ID:???
オブジェ糞歯垢と関係ないヤンwwwwwwwwwwwwwwwwwwwwwwwwwwwww
299nobodyさん:2007/04/18(水) 00:42:13 ID:???
>>296
それはどうしても
echo array('a','b','c')[2]; 
と書かなければいけないものなのか?
300nobodyさん:2007/04/18(水) 00:50:01 ID:???
確かPerlやJavascriptはarray(1,2,3)[0]
と言う書き方が通ったから、他でもやりたいって気持ちは分かるよ。
301nobodyさん:2007/04/18(水) 00:51:37 ID:???
だからオブジェクト指向関係ないじゃん
302nobodyさん:2007/04/18(水) 01:03:57 ID:???
explode( ',' , $str )[3];
てやりたい時はある
303nobodyさん:2007/04/18(水) 01:17:44 ID:???
>>302
それはある。
出来ないから変数に突っ込んでやってるけどね。
304nobodyさん:2007/04/18(水) 02:24:40 ID:???
method()->hoge();
が、でPHP5できるようになったから、
PHP6では>>302ができるようになるはず!
305nobodyさん:2007/04/18(水) 02:45:15 ID:???
そんなのより文法にクロージャを。create_functionみたいな間抜けなやつはいらん。
306nobodyさん:2007/04/18(水) 03:09:10 ID:???
なんでここIDでないの?おしえてエロい人
307nobodyさん:2007/04/18(水) 06:15:48 ID:2pczTFS7
urlを読み込んで、色々処理したいということで
いくつか関数を調べたのですが
どれも失敗しました。
他に何か方法は無いでしょうか?
phpのバージョンは4.2.3です。

$html=domxml_open_file($url);
同一行を指示した同じようなwarningが沢山でて使えませんでした。

$html=fopen($url,"r");
Noと言われる。

$html=implode("",file($url));
bad argument

$html=file_get_contents($url);
undefined function
308nobodyさん:2007/04/18(水) 06:19:49 ID:???
>>307
ソースとエラーをきちんと晒せ。
最低限エラーはきちんと書かないと分からない。
309307:2007/04/18(水) 06:48:07 ID:2pczTFS7
$url=$_POST['url'];

//$html=file_get_contents($url);
//$html=fopen($url,"w");
//$html=implode("",file ($url));
//$html=domxml_open_file($url);

$text=strip_tags($html);

print $text;

です。//をそれぞれ外して出たエラーは

$html=file_get_contents($url);
Fatal error: Call to undefined function: file_get_contents() in c:\phpdev\www\ereg.php on line 21

$html=fopen($url,"w");
Warning: fopen("http://en.wikinews.org/wiki/33_dead%2C_15_injured_in_Virginia_Tech_University_shootings", "w") - No error in c:\phpdev\www\ereg.php on line 24

$html=implode("",file ($url));
Warning: file("http://en.wikinews.org/wiki/33_dead%2C_15_injured_in_Virginia_Tech_University_shootings") - No error in c:\phpdev\www\ereg.php on line 26

Warning: Bad arguments to implode() in c:\phpdev\www\ereg.php on line 26

310307:2007/04/18(水) 06:54:18 ID:???
$html=domxml_open_file($url);
は行数制限でそのままコピペできないので意味のありそうなとこを
クリップします。

Warning: http://en.wikinews.org/wiki/33_dead_15_injured_in_Virginia_Tech_University_shootings:234: in c:\phpdev\www\ereg.php on line 19

Warning: error: in c:\phpdev\www\ereg.php on line 19

Warning: Entity 'nbsp' not defined in c:\phpdev\www\ereg.php on line 19

Warning: e='submit' name="go" class="searchButton" id="searchGoButton" value="Go" />&nbs in c:\phpdev\www\ereg.php on line 19

Warning: ^ in c:\phpdev\www\ereg.php on line 19

Warning: Entity 'reg' not defined in c:\phpdev\www\ereg.php on line 19

Warning: ons Attribution 2.5 License unless otherwise specified.
WikinewsR in c:\phpdev\www\ereg.php on line 19

Warning: Opening and ending tag mismatch: br and li in c:\phpdev\www\ereg.php on line 19

Warning: ource="http://web.resource.org/cc/DerivativeWorks"/> -->c:\phpdev\www\ereg.php on line 19

Warning: Premature end of data in tag 0.064 secs. --> in c:\phpdev\www\ereg.php on line 19
311nobodyさん:2007/04/18(水) 07:23:21 ID:???
このスレでも稀に見る極度のゆとり・・・
312nobodyさん:2007/04/18(水) 07:55:03 ID:???
curlは?
313nobodyさん:2007/04/18(水) 08:00:50 ID:???
ろくに見ないで答えて見たけど読んでみたらそれ以前の問題が多いなw
携帯だから細かくかけないけどとりあえずwはねえだろ
314nobodyさん:2007/04/18(水) 08:15:20 ID:???
すいません。wは念のためやったのがそのまま残ってただけです。
rでやっても同じでした。
315nobodyさん:2007/04/18(水) 09:15:02 ID:???
>>309
>>Fatal error: Call to undefined function: file_get_contents() in c:\phpdev\www\ereg.php on line 21
まずもって、この意味もわからんやつが、domxml_open_fileなんぞという関数を使おうと思うな。
316nobodyさん:2007/04/18(水) 12:06:59 ID:???
$html=fopen($url,"w");
print $text;
せめてfopenぐらいは勉強してから質問しる
317nobodyさん:2007/04/18(水) 12:30:02 ID:???
>>315
それ見ただけで原因が分かるな
バージョンが違うだろって
318nobodyさん:2007/04/18(水) 15:16:23 ID:???
<pre>
<?php
$url = "http://www.google.com/";
$list = file($url);
foreach ($list as $val) {
echo htmlspecialchars($val);
}
?>
</pre>
319nobodyさん:2007/04/18(水) 15:54:19 ID:???

スクリプトだけ書いて一切言葉しゃべらない人いるよね
まじキモイんですけど…
320nobodyさん:2007/04/18(水) 16:00:42 ID:???
貴重なノウハウを教えてくれてるんだろ?
立場を弁えろ
おめーのほうがきもいんだよ
321nobodyさん:2007/04/18(水) 16:01:58 ID:???
echo '>>319 レス乞食乙。ほらほらうれしいでちゅか〜?';
322nobodyさん:2007/04/18(水) 16:03:55 ID:???
あとはわからない関数は自分で引いて自分で考えろってことだろ。
それすら理解できないならPHPなんてやらないほうがいいよ。
323nobodyさん:2007/04/18(水) 16:04:24 ID:???
319の発言に結構ショックを受けた。
何百の言葉よりも簡潔なコードがどれほど雄弁に語っているかがわからないその感性に。

324307:2007/04/18(水) 16:08:19 ID:2pczTFS7
>>318
レスどうも。
fileは
wikinewsでは使えないみたいです。
結局fsockopenでやりました。
325虚弱PHP:2007/04/18(水) 16:11:52 ID:???
>>307
PHPのバージョンが古すぎる…。
ひとまず、最新版を入れよう。そしてマニュアルを読もう。
326nobodyさん:2007/04/18(水) 16:14:00 ID:???
>>318がキモいのは流れぶった切って しょーもないコード書いちゃってるところ
327nobodyさん:2007/04/18(水) 16:16:11 ID:???
>>326
>>307を見る限り間違った答えではないと思うが?
328nobodyさん:2007/04/18(水) 16:18:29 ID:???
>>307に必要なのは初歩から勉強することだろ
329nobodyさん:2007/04/18(水) 16:23:00 ID:???
>>328
そういう態度だから上から見てるとか偉そうだとか言われるんですよ。
330nobodyさん:2007/04/18(水) 16:25:49 ID:???
>>327
>>326はPHPについて興味津々で話題に入れて欲しくてたまらないけど、
コードは読めないしああいうことしか言えないんだから、
そっとしておいてあげようじゃないか。
331nobodyさん:2007/04/18(水) 16:39:23 ID:???
>>329
お前、無償で役立つアドバイスをしてもらえることがどれ程有難いことか分かってないのか?
そんな甘ったれた考えだと社会に出てから苦労するぞ
(つーかどこにもそんなこと言われてねーし)
332nobodyさん:2007/04/18(水) 16:41:51 ID:???
社会に出てから苦労するのは>>331だと思ったw
ほんと上から見てるなw
333nobodyさん:2007/04/18(水) 16:43:29 ID:???
>>331
社会人が平日のこんな時間にこんなスレに張り付いてるわけない。
社会人ぶったニート乙。

>>333
ニート乙
334nobodyさん:2007/04/18(水) 16:47:21 ID:???
>>333
社会人だけど
335nobodyさん:2007/04/18(水) 16:47:57 ID:???



ここまでテンプレ。

では次の質問者の方どうぞ。
336nobodyさん:2007/04/18(水) 16:54:21 ID:???
この時間にレスしてる=ニート
としか想像できないやつも滑稽だな。
そこまでして忠告に対して耳をふさぎたいのか。
337nobodyさん:2007/04/18(水) 16:58:00 ID:???
もういいから引っ込んでろよニート。
まぁ社会人ならこの時間にレスしてる確率なんてかなり低いけどな。
夜勤とか夜の仕事とかいくらでも言い訳はあるが。

あと忠告とは言わない。ただの余計なお世話。
回答者にかみついてる方がよほど滑稽。
答える気ないならいちいちレスしなくていいからROMっててよ。

はいはい次次。
338nobodyさん:2007/04/18(水) 17:10:46 ID:???
いいクマ専用しおり
_____________________________
   ∩___∩
   | ノ      ヽ
  /  ●   ● |  
  |    ( _●_)  ミ
 彡、   |∪|  、`\
/      ヽノ      \
~~~~~~~~~~~~~~~~~~~~~~~~
    ここまであまさず読んだ
339nobodyさん:2007/04/18(水) 17:13:21 ID:s4cVlRv3
phpMyEditを使って、DBのメンテ画面を作っているのですが、
編集画面でコンボボックスを使う方法がわかりません(><
340nobodyさん:2007/04/18(水) 17:19:38 ID:???
>>337
もっと謙虚にならないとだめだぞ。
質問スレで回答者に対して敬意を払うのは当たり前。
「初歩から勉強すること」と言われただけで上から見てるとか偉そうだとかいうのは
勘違いもいいところ。一言で言えば「立場を弁えろ」。
初歩から勉強することの大事さが分かってないのかな。
基本を知らないで正解だけ教えてもらっても後々それ以上に苦労するもんだよ。

実際PHPの知識量では下なんだから仕方ないだろ。
上から見られた悔しさをばねに学べばいい。
というかそうしないと永遠に下のままだ。
本筋と関係ないところで個人攻撃して憂さ晴らしても何も良い方向には進まんよ。
341nobodyさん:2007/04/18(水) 17:28:06 ID:???
マジレスしてみよう

>>337
社会人になればわかるが、平日に休むことは割りとある。
振り替え休日やシフト勤務、有給に体調不良、理由はいくらでもある。
加えて、平日の昼間にだって(本当は良くないが)2ちゃんに書き込みする暇なんざ
少なからずある。
まあ、社会人になればわかるさ。
342nobodyさん:2007/04/18(水) 17:31:18 ID:???
>>340
自分の考えを他人に押し付けるのはよくない。
勉強の仕方なんて千差万別。

あと話がズレすぎ。
そもそも>>326みたいなレスをするのが悪いんでしょ。
ここが何のスレかをもう一度考えたほうがいい。
343nobodyさん:2007/04/18(水) 17:41:32 ID:???
>>318
確かに何も書いてないと一瞬見てただの質問者かと思った

その後のやり取りにワロッタw
344nobodyさん:2007/04/18(水) 17:42:10 ID:???
>>341
社員でシフトって鯖管ぐらいじゃないの?
このスレ見てる大半がIT関連企業で働いてるっていう認識が間違ってるのか?
345nobodyさん:2007/04/18(水) 18:02:13 ID:???
で それがどうPHPのくだ質なんだ?
346nobodyさん:2007/04/18(水) 18:09:51 ID:???
ぶっちゃけ学生も多いんじゃないかな
そんな俺はまさに今仕事中な駄目社員ですけど…
347341 :2007/04/18(水) 18:16:19 ID:???
>>344
んなこたあない。
保守対応とかで24時間待機とかの場合、プロジェクトメンバの中でシフト体制を組む。
後は客先の事情に合わせたりする場合もあるし、鯖管だけとは限らないよ。
でかいプロジェクトだと一ヶ月くらいは24時間待機になったりするね。
あと、なんか新規機能のリリースとかでも監視対応でシフトになったりするな。
で、
>このスレ見てる大半がIT関連企業で働いてるっていう認識
んなこたあなかろ。
348nobodyさん:2007/04/18(水) 18:29:29 ID:???
mysqlの板がないのでここで質問してみたりする。。

LIKE%-%でなぜかない文字が検索される。

「草」と検索すると「石」もヒットする。
確認できてるのはこれだけなのだけど、なんでなのかな?
349nobodyさん:2007/04/18(水) 18:31:10 ID:???
学生 3割
社会人 6割
ttp://jimaku.in/w/TjCXdlPQraI/N_Xj1b_hnVz 1割
350nobodyさん:2007/04/18(水) 18:32:53 ID:???
351nobodyさん:2007/04/18(水) 18:56:31 ID:???
デスマーチにでもなれば時間の感覚なんて無くなりますよ
352nobodyさん:2007/04/18(水) 19:01:24 ID:???
>>349
wwwwwwwwwwwwwwwwwwww
353nobodyさん:2007/04/18(水) 19:40:49 ID:???
>350
どもです。そっちで聞いてきます。めんぼくないです。
354nobodyさん:2007/04/18(水) 20:41:49 ID:???
>>349
warota
355nobodyさん:2007/04/18(水) 21:01:50 ID:???
>>349
前スレのだったか忘れたが、そのやり取りがないと効果半減じゃないか!
356nobodyさん:2007/04/18(水) 23:15:28 ID:???
フォルダ内の複数の画像をリンクをクリックしてPHPに出力するスクリプトを教えてくだちい
ftpでフォルダにうpするだけで勝手に閲覧できるようにしたいんですがあとは↑だけなのにやり方がわかりませんぬ
357nobodyさん:2007/04/18(水) 23:56:01 ID:???
>>356
日本語でおk
358nobodyさん:2007/04/19(木) 00:12:44 ID:???
>>356
書いてることがよくわからないので見当違いかもしれないが、
マニュアルのreaddirの例479じゃない?
例479の
echo "$file\n";
を、
echo "<a href=\"{$file}\">{$file}</a><br>\n";
とかにすればいいんじゃないかと。
359nobodyさん:2007/04/19(木) 01:30:59 ID:???
>>356
フォルダに画像をアップして、そのフォルダ内にindex.htmlやindex.htmをおかなければOK
360nobodyさん:2007/04/19(木) 01:59:37 ID:???
>>359
それはApacheのindexesがオンになってたらの話だろ。
セキュリティ上普通はオフにしてある。
htaccessが使用可能ならindexesをオンにできるが、
そうなるとスレ違いだ。
361nobodyさん:2007/04/19(木) 03:45:01 ID:???
おまいら様がクラス作るときは
Javaみたいに1クラス1ファイルで書いてらっしゃる?

そもそもクラスなんて書かねぇ、てのは無しで
362nobodyさん:2007/04/19(木) 04:00:05 ID:???
関連するクラスは1ファイルにまとめたりするよ。
何らかのオブジェクトとそのコレクションを収めるためのクラスとかね。
363nobodyさん:2007/04/19(木) 08:33:00 ID:???
基本は1クラス1ファイルだな。
数クラスで完結するような小規模スクリプトは一ファイルですましちゃうけど。
364nobodyさん:2007/04/19(木) 10:01:37 ID:hqZ1gGO6
copy関数って256倍と超えるパス指定したらだめなの?
365nobodyさん:2007/04/19(木) 10:49:03 ID:???
>>364
やってみろ
366nobodyさん:2007/04/19(木) 11:06:01 ID:???
<?php include('header.php'); ?>
<p>なんたらかんたら</p>
<?php include('footer.php'); ?>

とするより、1つのPHPファイルにまとめて

<?php include('chinko.php'); printHeader(); ?>
<p>なんたらかんたら</p>
<?php printFooter(); ?>

ってやるほうが賢い選択でしょうか?
教えてエロイ人
367nobodyさん:2007/04/19(木) 11:07:26 ID:???
いや頭悪い選択
368nobodyさん:2007/04/19(木) 11:16:12 ID:???
そもそもPHP使う時点で頭悪(ry
369nobodyさん:2007/04/19(木) 11:16:39 ID:hqZ1gGO6
>>365
パス間違ってないのに関数がFALSE返してコピーされないのよ。
ちなみにwindows版。
370虚弱PHP:2007/04/19(木) 11:19:49 ID:???
パスの255バイト制限ってWindowsの仕様じゃなかったっけ?
371nobodyさん:2007/04/19(木) 11:53:40 ID:???
copy じゃないけど mkdir()で試してみたら
245バイトまでOKだったな。
多分windowsの制限じゃないの?
372nobodyさん:2007/04/19(木) 12:23:32 ID:suDQqd22
MySQLのDBに、データをInsertした際に、auto_increment させたフィールドの値を確認する方法ってありますか?
373366:2007/04/19(木) 12:24:23 ID:???
>>367
その心は?

>>368
その心は?
374nobodyさん:2007/04/19(木) 12:36:20 ID:???
>>372
phpMyAdminとかでみればいいんでねーの?
375nobodyさん:2007/04/19(木) 12:37:41 ID:???
掲示板でユーザーが投稿→投稿ないようをそのままPHPファイルのindex.phpに「書き込んで」表示
の場合、<?php 〜〜〜 ?>をエスケープするだけでいい?
(しないとPHPコードが実行されるような状態)
ちなみにタグOKなのでhtmlspecialcharsはしません
376nobodyさん:2007/04/19(木) 12:56:30 ID:???
>>372
http://pc11.2ch.net/test/read.cgi/php/1164617202/377-
>>375
index.phpに書き込んで表示の意味が分からない
377nobodyさん:2007/04/19(木) 13:08:25 ID:???
>>372
つlast_insert_id

PHP固有の話ではないのでスレ違いだな。
さらに話を続けたければMySQLのスレに行くべし
378nobodyさん:2007/04/19(木) 13:19:55 ID:???
>>375
index.phpが投稿内容を表示するページってことか?
んで投稿内容にPHP開始タグがあるとPHPが実行されるからエスケープするって?
379nobodyさん:2007/04/19(木) 13:35:51 ID:WBNGWxYV
共通する箇所(データベースから指定データを読み込みなど)は、
class化して、用途に応じてそのclassを実行しているのですが、
複数ファイル内に同じソースの結構があって、このclass処理の部分を
まとめるか否かで悩んでいます。

まとめる=関数にすると言ったイメージがあるのですが、
そもそも関数をまとめているのがclassなわけで、なんか変だと思います。

ただ、共通するclassの部分は別ファイルにして、requireするだけで
良いのかな?とも思いますが、それで良いのかどうかも迷います。

文章では伝わりにくいかもしれませんが、アドバイスいただければ助かります。
380nobodyさん:2007/04/19(木) 13:36:54 ID:???
修正

複数ファイル内に同じソースの結構があって ↓
複数ファイル内に同じソースの箇所が結構あって
381nobodyさん:2007/04/19(木) 13:55:12 ID:???
同じようなコードを何度も書く羽目になったらそれはどこか
間違えている。まーでもPHPは貧弱だから止むを得ないことも...
382375:2007/04/19(木) 14:08:54 ID:???
>>376
>>378
投稿された文字列をログに入れてecho で表示するんじゃなくて、
PHPファイルに直接書き出すので、
<?php "ああああああああ"?>と入力されると
あああああああが表示されてしまう状態

この場合、PHPがコードとして評価されるのを防げば、
PHP的なセキュリティはOKですか?
383nobodyさん:2007/04/19(木) 14:10:02 ID:???
同じコードを何度も書くならモジュール化して使いまわせばいいんじゃない?
それを実装するための手段として関数だろうがクラスだろうが何でも構わない。
自分にとって便利な方法使えばいいと思うよ。
384nobodyさん:2007/04/19(木) 14:11:07 ID:???
>>382
掲示板でそんな機能付けるな
385375:2007/04/19(木) 14:29:40 ID:???
>>384
過去ログ機能をそなえた実にすばらしいアイデアなんですよ
書き込むファイルは日付けを元にしたファイル名なので、
日付けが変わるとファイルが切り替わって過去ログになる
いちいち作り直さなくてもOK

20070419.php

<!--ヘッダ部分-->
わたしの掲示板です
あなたは<?php /*カウンタのコード*/ ?>番目のPHP大好きっ子です!
<!--ここから投稿内容 追記モードで書き込む-->
〜〜〜
〜〜〜
〜〜〜
386nobodyさん:2007/04/19(木) 14:38:01 ID:???
>>385
ごめん、ID出ていないから別人の成りすましかもしれないが
何を言いたいのか全然分からん
387nobodyさん:2007/04/19(木) 14:52:31 ID:???
>>386
>>375はindex.phpを書き換えるって書いてるから別人だろう
htmlを書き換えるなら分かるがなぜphpを書き換える必要があるのか理解に苦しむが
388虚弱PHP:2007/04/19(木) 15:14:29 ID:???
SSIみたいなことやりたいんじゃないかな。
まあ、「タグOKなので」の時点で多分XSSし放題。
389364:2007/04/19(木) 15:16:34 ID:hqZ1gGO6
>>370-371
どうしようもないので、こんな関数作ってみたら成功。
function excopy($src, $dst)
{
exec("copy \"{$src}\" \"{$dst}\" 2>&1", $ary, $ret);
return ($ret == 0) ? TRUE : FALSE;
}
性能には全く変わらず。

phpの内部でパスのバッファが256バイトぐらいの固定長なのかねぇ?
390虚弱PHP:2007/04/19(木) 15:17:30 ID:???
>>379
> まとめる=関数にすると言ったイメージがあるのですが、
> そもそも関数をまとめているのがclassなわけで、なんか変だと思います。

ここら辺の認識がちょっと違うような気がする。
classをclassとして有効に使うというより、
単なるネームスペースみたいなものとして使ってるんじゃないかな。
391nobodyさん:2007/04/19(木) 15:18:19 ID:RzPJY5VS
失礼します。質問させていただきます。
ユーザー登録で”半角英数字のみ”という判定をしたいのですが、どのように判定すればいいでしょうか?
よろしくお願いします。
392nobodyさん:2007/04/19(木) 15:20:29 ID:???
>>391
正規表現で対応可能。
専用のスレがあるから、次からはそっちで。

if(preg_match("/[^a-zA-Z0-9]/",$str)){
半角英数字以外があった時の処理
}
393391:2007/04/19(木) 15:22:08 ID:RzPJY5VS
>>392
ありがとうございました。さっそく試してみます。
394虚弱PHP:2007/04/19(木) 15:32:45 ID:???
>>389
よくわからないので、簡単に調べてみた。
Windowsではフルパスが
MAX_PATH 260
で定義されてて、
PHPのソースでもそのまま使ってるみたい(たぶん /main/php.h)。
execだとOSがショートファイル名使ってるのかもしれないね。
395虚弱PHP:2007/04/19(木) 15:36:50 ID:???
>>391
ctype_alnum()が推奨だったかもしれない。
396379:2007/04/19(木) 16:07:02 ID:???
>>381,383
例えば、「データベースに登録している特定の情報を出力するclass(又は関数)」
があったとして、それをlist.phpでもsearch.phpでも使用している。
という事に関してこれで良いのか否か悩む時があります。
list.phpでもsearch.phpでも同じコードを書くわけですから、classの意味があるのかと。

自分にとってはclass化(モジュール化)してだいぶ効率が上がったのですが、
更に効率が上がる方法はないかと思い、質問した次第です。
>>390
その判断が正直わかりません。他者のコード(例えばXOOPSやphpbbなど)
を見ても、同じコードが出てくる箇所は結構あるし。
周りに聞ける人間がいないので、自分のコード・組み立て方は正しいのか
どうか迷う時があります。WEBシステムとして動けば良いのでしょうが。。
397nobodyさん:2007/04/19(木) 16:15:17 ID:???
>>396
状況がよくわからないけど、ほとんど同じ振る舞いをするバリエーションであれば、
共通部分を括りだして基底クラスを作って、改めて既存のクラスをそこから派生させてやればいいのでは?
398虚弱PHP:2007/04/19(木) 16:52:24 ID:???
>>396
もうちっと具体的にならないと、
どう設計したらいいかのアイデアは出てこないと思う。

例えば、こういった感じのふたつの処理があるとする。
1) update.php(更新→リスト表示)
2) list.php(リスト表示)

この場合、リスト表示は同じ処理になっちゃう。
でも同じ処理なんだから共通化したいよね。

そしたら処理を細分化して、
1. function update()
2. function list()

1)' 1を呼ぶ → 2を呼ぶ
2)' 2を呼ぶ

とすることで解決。
ここら辺はできてるんじゃないかな?
MVCフレームワークだと1)'や2)'がControllerだね。
1や2がModel。

1)'' 1を呼ぶ → 2を呼ぶ → 表示処理
2)'' 2を呼ぶ → 表示処理

とすると一応MVC。
で、>>396 は何に悩んでいるかだ。
399nobodyさん:2007/04/19(木) 16:58:17 ID:???
>>397が答えだと思うのだが。
400nobodyさん:2007/04/19(木) 16:58:19 ID:???
ここでupdate.phpとlist.phpに同じクラス書いてるとエスパー
401虚弱PHP:2007/04/19(木) 17:06:06 ID:???
1を呼ぶ、2を呼ぶとかをもうちょっと整理すると、
Mojaviで言うActionChainになると思う。

で、ActionChainみたいなのはContollerより上位の考え方だし、
Controllerよりもっと基本レベルで、
(例えば)入力の標準的なValidatorを通したいとか、
権限によって処理を実行するかしないかみたいな、
振り分けをしたいと思うようになる。

そうしたら、Javaで言うServletコンテナみたいなコンテナを用意して
そこら辺の処理をやらせたり。

…とここら辺で俺は満足しちゃったんだけど。
402379:2007/04/19(木) 17:08:05 ID:???
>>397-98
詳しくご説明ありがとうございます。
例えば
a)function memberData(); //会員情報を表示
b)function bbsData(); //掲示板の書き込み内容
c)function categoryData(); //カテゴリ

があるとします。この基本セットは
登録一覧表示(list.php)や検索表示(search.php)
など、一般的にしようするとします。

しかし、list.phpにdが出てきた場合はどうするか?list.phpにdの関数(又はclass)
だけ追加してやればいいのか?もしくは、外部ファイルに分けて読み込むように
した方が良いのか?と言うのが悩みです。

398さんの例で言うと (共通した3を追加する場合)
1を呼ぶ→2を呼ぶ→3を呼ぶ
2を呼ぶ→3を呼ぶ

で良いのかな?と思うわけです。わかりづらかったらすみません。
403nobodyさん:2007/04/19(木) 17:08:41 ID:???
どうやってPHPでServletコンテナみたいなものを実現させるの?
404nobodyさん:2007/04/19(木) 17:11:07 ID:???
>>402
やっぱり同じクラスを2つのページに書いてるの?
処理a, b, c, dがあるクラスを両ページでincludeすればいいんじゃないでしょうか?
405379:2007/04/19(木) 17:15:28 ID:???
>>404
そうですね。例えば一覧表示(list.php)の場合は検索のclassはいりませんが、
>>402の例で言うと、a〜cまでのclass(関数)は使っています。
そして検索用のファイル(search.php)では、検索用のclass(例ではd)
を追加している。といった感じです。

現在は両ページでincludeしているのですが、a〜cまでは共通しているので
更にa〜cまでまとめてincludeした方が良いのかな?と言うのが悩みです。
406nobodyさん:2007/04/19(木) 17:20:55 ID:???
えーとそれだとクラスの再利用とかの意味がないよね。
関数集としての使い方しかしてないみたいだし、普通にfunctions.phpにでも関数入れて
各ページで読み込ませることにしたほうがいいんじゃね?
んでこれが終わったらオブジェクト指向・設計とかクラスとかについて勉強するといいと思われ。
407nobodyさん:2007/04/19(木) 18:13:04 ID:???
>>402
なんか根本的にclassの使い方判っていない感じがする
408nobodyさん:2007/04/19(木) 18:37:31 ID:???
被るならextendsなりincludeしたらいい
409379:2007/04/19(木) 19:02:47 ID:???
とりあえずもう少し見直してみます。

オブジェクト指向化していると思うのですが、
自分の思う基準が一般的な基準と違うかもしれませんし。

アドバイスいただいた方、ありがとうございました。
410虚弱PHP:2007/04/19(木) 19:07:32 ID:???
>>409
まあ、class使ってカプセル化する事がオブジェクト指向ではないので。
(といいつつ、定義は難しいよね)
デザインパターンとか勉強してみるといいかも。
411nobodyさん:2007/04/19(木) 19:26:32 ID:???
今更だけどクラスの使い方わからん
変数がそのまま残るってこと?
だったら消えてくれたほうが使いやすい
412nobodyさん:2007/04/19(木) 19:29:19 ID:???
(・∀・)ニヤニヤ
413nobodyさん:2007/04/19(木) 19:36:20 ID:JjAom0RF
いちいちincludeかかないで、どこのディレクトリからでも、
特定のクラスを使えるようにしたいのですが、
なんかそういう方法ありますか?
パスとおすみたいなことができればおしえていただきたいです。
414nobodyさん:2007/04/19(木) 20:08:09 ID:E0JBJHfw
DoCoMo/2.0 YYYY(c10;ser12345678901; icc12345678901234567890)

上記の文字列の、「12345678901」の部分を取得したいのですが、

$ascii="DoCoMo/2.0 YYYY(c10;ser12345678901; icc12345678901234567890)";
preg_match("/ser(.*);/",$match,$agent);
でマッチしないです。
"/ser\d{15};/"
も試してみたのですが同じです。
この部分はどのような文でマッチさせるのがベストなのでしょうか?
415nobodyさん:2007/04/19(木) 20:27:19 ID:???
>>414
するけど?
ていうかなんかおかしいぞ。変数が。

$ascii="DoCoMo/2.0 YYYY(c10;ser12345678901; icc12345678901234567890)";
if (preg_match("/ser(.*);/", $ascii) {
  echo "match";
}
416415:2007/04/19(木) 20:28:24 ID:???
訂正
if (preg_match("/ser(.*);/", $ascii) {

if (preg_match("/ser(.*);/", $ascii)) {
417nobodyさん:2007/04/19(木) 20:29:58 ID:E0JBJHfw
>>416
あー
比較する変数と比較した結果が格納される変数を
書く場所が逆でした

ありがとうございます
418nobodyさん:2007/04/19(木) 21:11:25 ID:g61ARuJQ
サクラのレンタルサーバで、htpd-2.0.53.tar.gzをインストールして
php5を使っています。

先ほどCall to undefined function: array_combine() とエラーが出てしまいました。
sqliteは使えるのでPHP5はインストール出来ていると思います。
何か設定がいるのでしょうか?
ちなみに、同じプログラムは自宅の環境では動いています。
419nobodyさん:2007/04/19(木) 21:14:24 ID:???
420nobodyさん:2007/04/19(木) 21:35:47 ID:???
>>418
一応phpinfo()で確認してみれば
421nobodyさん:2007/04/19(木) 21:54:57 ID:???
>>420
ネタニマジレスカコワルイ
422nobodyさん:2007/04/19(木) 22:01:09 ID:3qk/G7nZ
DBからひっぱってきたさまざまな値を表示したいのですが、
select * from table where 1;
とかして、1回のクエリで全部取得して、配列などを駆使して頑張って表示するか、
select column from table where group = 1;
みたいなクエリを数回実行して、
数回にわたり、クエリ送信→結果取得・表示を繰り返すのは、
どちらが一般的な方法なのでしょうか?
あと結果取得する際は、fetch_assocやfetch_objectなど
さまざまな関数がありますが、どの関数を使うのが一般的ですか?(もちろん用途によるでしょうが)
423nobodyさん:2007/04/19(木) 22:03:46 ID:???
>>422
さまざまな値によるんじゃね?
424nobodyさん:2007/04/19(木) 22:10:07 ID:???
SQLが複雑になっても1回のクエリにした方が
大抵の場合は速いのでDBへのクエリ発行は基本少なくした方が良い
配列でとるかオブジェクトでとるかは好みでいいと思うが
最初は配列でいいんじゃないかな
425nobodyさん:2007/04/19(木) 22:11:20 ID:3qk/G7nZ
>>423
具体的にテーブルの構成は、
ID, GROUP(int), NAME(char), DESCRIPTION(char)ってかんじで、
GROUP別にNAMEとDESCRIPTIONを表示するだけなんですけど、
イメージとしては
<table>
<tr>
<td rowspan="3">Group1</td>
<td>Name</td><td>Description</td>
</tr>
<tr>
<td>Name</td><td>Description</td>
</tr>
<tr>
<td>Name</td><td>Description</td>
</tr>
</table>
ってかんじです。

#だいぶスレ違いすみません。
426nobodyさん:2007/04/19(木) 22:15:09 ID:3qk/G7nZ
>>424
レスありがとうございます。

>SQLが複雑になっても1回のクエリにした方が
>大抵の場合は速いのでDBへのクエリ発行は基本少なくした方が良い

やっぱそうですよねー
まだ1度で全てやったことはないので勉強がてら頑張ってやってみようと思います。

>配列でとるかオブジェクトでとるかは好みでいいと思うが

ではオブジェクト慣れしてないので配列で頑張ってみます。
427nobodyさん:2007/04/19(木) 22:26:41 ID:???
3回に分けてクエリ発行するほうが面倒でない?
428nobodyさん:2007/04/19(木) 23:40:32 ID:0KeZVqYA
はじめまして、ほんとくだらなくて申し訳ないんですが

SimpleXMLのasXML()を使ってxmlファイルを作成する際に、
インデントさせた形でxmlファイルに書き込むにはどうすればよいですか。

$xml = simplexml_load_file('example.xml');
$a = $xml->addChild('a');
$b= $a->addChild('b', 'hoge');
$c = $a->addChild('c','fuga');
$xml->asXML('example.xml');

example.xml:

<a><b>hoge</b><c>fuga</c></a></a>
↑これを

<a>
  <b>hoge</b>
  <c>fuga</c>
</a>
↑このように整形した形でファイルに
書き込見たいのです。
429nobodyさん:2007/04/19(木) 23:47:20 ID:???
>>428
残念ながら仕様なので無理ですね。
430nobodyさん:2007/04/19(木) 23:47:20 ID:???
\nと\t
431428:2007/04/20(金) 00:07:56 ID:b3irjh4D
>>429さん、>>430さん
すばやいレスありがとうございます。
仕様なら仕方ないですね。
ほかの方法であたってみます。
ありがとうございました。
432nobodyさん:2007/04/20(金) 00:09:40 ID:???
simplexml使ったこと無いけど
grepで確認してSimpleXMLElementからオーバーライド
433nobodyさん:2007/04/20(金) 00:19:50 ID:SGW4zUZi
session.save_path は、パスの深さが 2 よりも大きい場合、
session.gc_probability, session.gc_divisor の設定では
自動で GC が行われないということですが、

/var/tmp // 自動で GC される
/home/usr/tmp // 自動で GC されない

という解釈でよいのでしょうか?
434nobodyさん:2007/04/20(金) 00:31:36 ID:???
>>428
DomDocument->dump_file()なら第一引数をTRUEにすれば
整形されるらしいから、そっち使えば
435nobodyさん:2007/04/20(金) 01:19:08 ID:???
チーッス
array(
array('a', '1'),
array('b', '2'),
array('x', '5')
)
と言う配列を手っ取り早く
array(
'a' => '1',
'b' => '2',
'x' => '5'
)
にする方法はないかな?
ヨロシク!
436nobodyさん:2007/04/20(金) 01:20:37 ID:tutvnVSF
IDだしとくぜ
437nobodyさん:2007/04/20(金) 01:23:30 ID:???
>>436
配列の要素と中身を入れ替える関数あるから調べてみれ
438nobodyさん:2007/04/20(金) 01:24:22 ID:???
array_flip
439nobodyさん:2007/04/20(金) 01:27:16 ID:???
ビットで

010010

100010
を処理して

110010
という感じの処理をしたいのですが、これをなんと言うのですか?
またやり方を知りたいです。

ビットを立ててフラグを管理するようなのを見るのですが、やり方がわかりません。
440nobodyさん:2007/04/20(金) 01:28:07 ID:???
>>435の上下って同じ意味なの?
上の形は初めてみた。
441nobodyさん:2007/04/20(金) 01:46:45 ID:VuqLwFSH
沖縄県の方へ(命に関わる注意事項です)

沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…

※一国二制度
 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
 さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
 そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。

今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
442nobodyさん:2007/04/20(金) 01:49:49 ID:???
完全にスレ違いだが
XMLってエラーあるとページ表示されんのかな?
443nobodyさん:2007/04/20(金) 01:51:30 ID:???
状況がわからんが、XMLを誰に食わせて、その結果を誰に渡してページを表示するんだ?
444442:2007/04/20(金) 01:57:19 ID:j6HhIKSH
ちゃんとした質問になりそうなのでID表示します。

>>443
CSV形式のファイルをPHPを使ってXMLに書き出そうと思うのですが、
なかなかうまいこといかずに苦戦中・・・

XML宣言してるのに形式が.phpだから表示されなかったり・・・
445nobodyさん:2007/04/20(金) 02:01:22 ID:???
>XML宣言してるのに形式が.phpだから表示されなかったり・・・
そりゃ当たり前だ。
htaccessで拡張子phpをxmlとして動作させるようにしないと。
phpでechoでxmlを出力してるなら、headerでxml指定すればいい。
446nobodyさん:2007/04/20(金) 02:03:50 ID:j6HhIKSH
>>445
.xmlで実行させてみたんだけど
宣言の<?xml〜?>がPHPとして認識されてしまう・・・

とりあえずヘッダーで出力してみることにします
447nobodyさん:2007/04/20(金) 02:08:58 ID:???
>>439
ビット演算
>>440
ちゃうよ
>>446
別に妥当なXML文書が出力できてればPHPで実行しようと問題ないだろ
448nobodyさん:2007/04/20(金) 02:09:34 ID:j6HhIKSH
<?xml version="1.0" encoding="utf-8" ?>
- <rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule">
- <channel>
- <item>
<title>最新データをXMLで出力</title>
<link>http://www.yahoo.co.jp/</link>
<pupDate>2007/4/20</pupDate>
</item>
- <item>
<title>CSVで保存してPHPで出力</title>
<link>http://www.yahoo.co.jp/</link>
<pupDate>2007/4/19</pupDate>
</item>
- <item>
<title>XMLでも出力</title>
<link>http://www.yahoo.co.jp/</link>
<pupDate>2007/4/18</pupDate>
</item>
- <item>
<title>役にたつかな?</title>
<link>http://www.yahoo.co.jp/</link>
<pupDate>2007/4/15</pupDate>
</item>
- <item>
<title>オナかすいた</title>
<link>http://www.yahoo.co.jp/</link>
<pupDate>2007/4/13</pupDate>
</item>
</channel>
</rss>
449nobodyさん:2007/04/20(金) 02:10:07 ID:j6HhIKSH
のような感じに出力できました

更新ボタン押すたびに

XML ページを表示できません
スタイル シートを使用した XML 入力は表示できません。エラーを訂正してください。 [更新] ボタンをクリックするか、または後でやり直してください。


--------------------------------------------------------------------------------

指定したエンコードはシステムでサポートされていません。リソース 'http://localhost/XML/make.php' の実行エラーです。



というページが表示されるが・・・orz
450nobodyさん:2007/04/20(金) 02:11:27 ID:???
"xml宣言 php"でぐぐれ
451nobodyさん:2007/04/20(金) 02:13:37 ID:???
450は無しで
452nobodyさん:2007/04/20(金) 02:14:07 ID:???
>>440
お前は何を言ってるんだ。
上は多次元配列、下は1次元の連想配列じゃないか。
453nobodyさん:2007/04/20(金) 02:14:36 ID:???
>>449
じゃ出力文書のエンコードが間違ってんだろ
454nobodyさん:2007/04/20(金) 02:16:09 ID:tutvnVSF
>>437,438
元のは必ず多次元配列になるんでarray_flipは使えないモヨリ。
455nobodyさん:2007/04/20(金) 02:17:56 ID:???
array_mapとarray_walkを試して見たのだが
キー部分が変えられなかった。
456nobodyさん:2007/04/20(金) 02:20:02 ID:???
はいヒントっつーか答え。これみてよく考えてください。

<?php
header('Content-Type: application/xml; charset=utf-8');
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
?>
<rss>
</rss>
457nobodyさん:2007/04/20(金) 02:21:30 ID:j6HhIKSH
>>456
あー、
なるほど、charsetのところに文字コードの変数じゃなくて別の変数を当てはめていたのが原因でした
458nobodyさん:2007/04/20(金) 02:22:09 ID:???
何当てはめてたんだよ('A`)
459nobodyさん:2007/04/20(金) 02:22:38 ID:j6HhIKSH
>>458
ちなみにこんなコードになってます
http://www.dotup.org/uploda/www.dotup.org2686.txt

こりゃおかしくなるわwwwwwwww
460nobodyさん:2007/04/20(金) 02:23:38 ID:???
>>459
なんじゃこりゃあああああw
461nobodyさん:2007/04/20(金) 02:25:59 ID:???
まぁ頑張った形跡は伺えるな。
462nobodyさん:2007/04/20(金) 02:26:32 ID:j6HhIKSH
どこか直したらいいところがあればアドバイスplz
463nobodyさん:2007/04/20(金) 02:34:29 ID:???
>>462
普通はxml関数使って出力するけど、別にいいんじゃない?
思い通りに動けばおk
464nobodyさん:2007/04/20(金) 02:37:42 ID:???
PHP6じゃ<?xmlではじまってるか<?phpではじまってるかで判断してくれないかね。
xhtml使ってる身としてはいちいち書くのだるい・・・
465nobodyさん:2007/04/20(金) 02:38:03 ID:j6HhIKSH
>>463
あー・・・
リファレンスにはxmlファイル取得と解析関係のしか載ってなくて
xml出力の関数もあるんですかorz
466nobodyさん:2007/04/20(金) 02:44:24 ID:???
short_open_tagだかの設定があるだろ
467418:2007/04/20(金) 03:07:22 ID:/zvZod/N
>>420
php4.4.6でした・・・。
ありがとうございます。サーバにインストールしたのが
WINDOWS版で、UNIX版でなかったからでしょうか。
また奮闘して、インストールしてみます。
468439:2007/04/20(金) 03:26:22 ID:???
>>447
ビット演算って言うんですね、ありがとうございます。

0101 & 0011 = 0001
0101 | 0011 = 0111
0101 ^ 0011 = 0110
~0101 = 1010
0101 << 1 = 1010
0101 >> 1 = 0010

あとは各計算方法の名前を教えて頂ければ嬉しいです。
469nobodyさん:2007/04/20(金) 03:29:29 ID:???
マニュアルに全部書いてあるので読んで頂ければ嬉しいです。
470nobodyさん:2007/04/20(金) 05:08:42 ID:4Ur3eUeX
オブジェクト指向にもふれとこうとおもって、
いろいろ参考サイトみているのですが、こんな書き方がありました。

function action(){
   $this->soul() and $this->weight *= 0.9;
   $this->weight < $this->first_weight * 0.6
     and $this->soul(true);
以下略

はじめてみる書き方なのですが、
(条件文でもなさそうなのに論理演算子や比較演算子が)
これは一体どういった意味なのか教えていただけませんでしょうか?
471439:2007/04/20(金) 05:45:49 ID:???
>>469
了解です、読んでみまっす
472nobodyさん:2007/04/20(金) 05:55:54 ID:???
>>468
もっと言えば>>439は論理和。
& 論理和
| 論理積
^ 排他的論理和
~ ビット反転
<< 左シフト
>> 右シフト
あたりがポピュラーな名称かな?
シフトで切り落としたビットを逆方向から挿入するローテイトなんて演算もあるけどこれを実装している言語はほとんどない。

>>470
実はオブジェクト指向とは全然関係ない。
あまりそういう書き方はされないが論理演算子のロジックを利用した条件式。
論理積は全てが真でなければ真とならないため、偽があった時点で評価を止め、偽を返す。
論理和も同様、どれかが真であれば真となるため、真があった時点で評価を止め、真を返す。
論理和の方は「fopen() or die();」などの形でしばしば利用される。
つまりは「$this->soul() and $this->weight *= 0.9;」は「if($this->soul()) $this->weight *= 0.9;」と等価。
ぶっちゃけif文の方が条件分岐専用なので若干(本当に若干だが)効率は良い。
473472:2007/04/20(金) 05:57:05 ID:???
ごめんこれ逆ねorz
& 論理積
| 論理和
474375:2007/04/20(金) 05:59:38 ID:???
わたしの質問の肝心なとこには誰も答えてない件について
475nobodyさん:2007/04/20(金) 06:23:11 ID:???
>>281

AddModule mod_php5.cはWINには関係ないからスルーしていいよ
476nobodyさん:2007/04/20(金) 06:24:51 ID:???
>>474
どうしたら教えてもらえのか書き方を勉強してきたほうがいいよ。
インターネットのネチケットについてのサイトをみてこい
477nobodyさん:2007/04/20(金) 08:25:54 ID:???
>>470
条件分岐のつもりで書いたぽいけど
and演算は代入よりも優先順位低いから
全く意味なしコードになってる予感

and と && は違うのよ
478nobodyさん:2007/04/20(金) 08:45:58 ID:???
>>477
低いからこそのだよ?
高かったら代入が左に有ったとき論理値が入っちまう。
479nobodyさん:2007/04/20(金) 09:25:32 ID:???
>>435
内側の配列をマージってことだからループなりでarray_merge

>>470
if (funcA() && funcB());
Aがfalseなら式全体はfalseであることが確定するので
Bは実行されない。これを短絡演算と言う。
ifの条件式内でなくても利用できる。
480虚弱PHP:2007/04/20(金) 10:25:05 ID:???
>>470
それ書いたの、元Cか元BASICの年寄りプログラマーじゃない?w
481nobodyさん:2007/04/20(金) 10:25:42 ID:???
>>375
君の質問は点数評価するなら10点なのでとりあえずソースを示してくれ。
482nobodyさん:2007/04/20(金) 12:00:55 ID:???
session_start();ってこれを書いた後からセッションが有効になるのですか?
それとも、ファイルの冒頭に必ずかかなければいけないとか?
483nobodyさん:2007/04/20(金) 12:09:06 ID:???
session_startで$_SESSIONに値が復元される
484nobodyさん:2007/04/20(金) 12:10:05 ID:???
>>483
意味分かりました。ありがとうございました。
485nobodyさん:2007/04/20(金) 13:06:25 ID:w/S09GXX
>>272
レス遅くなりました。ありがとうございました。
おかげで解決できました。
そのままreadfile関数を使わせていただきました。
486nobodyさん:2007/04/20(金) 13:21:29 ID:???
アバター作成ツール作りたいのですが、ググっても参考になるサイトがありません。
基本的には画像の重ね合わせだと思うのですが(GDだけでいける?)。。
参考になるサイトもしくは過去に作った方いらっしゃれば(途中まででも)見せていただけませんでしょうか?
487nobodyさん:2007/04/20(金) 13:28:17 ID:???
GDだけでもいけるけど、ImageMagick使ったほうが楽
488nobodyさん:2007/04/20(金) 13:32:03 ID:???
>>486
昔ちょっとやろうとして面倒だからやめたけど、基本的にはあってるよ。
たとえば、基本フレーム、体、服、アクセサリを用意して、それぞれを同じ大きさであわせておく。
このとき、1色を透過色として使うので、その色はほかで使わない。
後はそれぞれを階層的に重ねていく(フレーム->体->服->アクセサリの順)
で、出力。
ただ、これを表示のたびにリアルタイムでGDでやろうと思うとごっつ重いので、
決定したときに一枚の画像で出力しておく。
という感じかな。
489486:2007/04/20(金) 13:47:01 ID:???
>>487-488
ありがとうございます
それにしても参考になるサイトが少なすぎます…(調べ方が悪い?)
GD アバター (PHP)
ImageMagick アバター
でもでないですね…

>リアルタイムでGDでやろうと思うとごっつ重い
なるほど
参考になります。
490nobodyさん:2007/04/20(金) 13:58:07 ID:???
参考になるサイトって言っても
考え方だけであとは作業的なもんだからなあ…

アバターで検索かけてもそんなピンポイントの
内容を記したところなんてそうないだろう。
やるんなら画像とか透過とか
491nobodyさん:2007/04/20(金) 15:15:45 ID:???
>>489
http://jp.php.net/gd
ここに書いてあることだけで十分できるだろ
492470:2007/04/20(金) 16:25:57 ID:4Ur3eUeX
レス遅れてすみません。
皆さん教えていただきどうもありがとうございました。
確かにor die()とか似たようなものはよくみますね。
短絡演算というのですか。
あまり使われないやり方とはいえ、大変勉強になりました。
493nobodyさん:2007/04/20(金) 17:26:43 ID:???
<html>
<head><title>テスト記録</title></head>
<body>
<table>
<tr>
<th>番号</th><th>名前</th><th>点数</th>
</tr>
<tr>
<td><center>1</center></td><td>鈴木</td><td>67点</td>
</tr>
<tr>
<td><center>2</center></td><td>加藤</td><td>74点</td>
</tr>
<tr>
<td><center>3</center></td><td>高橋</td><td>53点</td>
</tr>
</table>
</body>
</html>

こういうWebページがネット上にあったとして
点数が69点以下の人のみの表を表示するPHPプログラムを作りたいとき
どういう方法が良いのでしょうか
要素を配列に取り込む方法があったりするのでしょうか?
494nobodyさん:2007/04/20(金) 17:31:04 ID:???
if ($tensu < 69){
echo バカ;
}else{
echo ^^;
}
495nobodyさん:2007/04/20(金) 17:35:25 ID:???
>>493
すでに作られた静的HTMLを元に動的ページにしようとしてるのか?
HTMLからデータ抽出する方法もない事もないが、
普通は事前に手作業等でデータだけを抜き出して
CSVファイルなりDBなりに保存するもんだ。
HTMLからのデータ抽出は
・表示されてるHTMLからのコピペ
・HTMLソースをテキストエディタで置換
等で大した手間でもなくできるだろ。
496nobodyさん:2007/04/20(金) 17:58:05 ID:???
>>493
>>495のいうとおりデータを抜き出したものを作るのが妥当。
どうしてもやりたいのなら、
fileあたりで配列に読み込んだあと、
正規表現で該当行の必要なデータを抜き出してそれを成形して表示する。
497nobodyさん:2007/04/20(金) 18:02:18 ID:???
DBを使わずにPHPのみで、

Yamada: Taro
Suzuki: Ichiro
John: Smith

のデータが入ったテキストファイルを、
例えば、2行目のSuzuki: Ichiroを削除したり、
Suzuki: Suzukiro みたいに変更したりできますか?
file()で配列にすればいいのかと思うのですが。
498nobodyさん:2007/04/20(金) 18:09:16 ID:???
>>497
いいとおもうならやってみればいいんじゃないですか?
499nobodyさん:2007/04/20(金) 18:12:21 ID:???
そう言われてみりゃそうなんでとりあえず試してみます
500nobodyさん:2007/04/20(金) 19:01:53 ID:ebFeEZPT
正規表現がイマイチ理解できん…

$a = abcde72;

この72の部分だけ変数にして取り出したいんだがどうすればいいんだ?
501nobodyさん:2007/04/20(金) 19:05:49 ID:???
自分がどう書いてできなかったのか、まずはソースを出せよ。
502500:2007/04/20(金) 19:10:51 ID:???
>>501
スマソ

$a = abcdef76afrew

$a1 = '[0-9]';

$no1 = strpos($a,$a1);
$no2 = $no1 + 1;

$str = substr($str, $no1, $no2);

echo $str;
503502:2007/04/20(金) 19:11:43 ID:ebFeEZPT
ミスった

$a = abcdef76afrew

$a1 = '[0-9]';

$no1 = strpos($a,$a1);
$no2 = $no1 + 1;

$str = substr($a, $no1, $no2);

echo $str;
504nobodyさん:2007/04/20(金) 19:13:03 ID:???
>>502
Str型ならちゃんと""or''で囲もうぜ

$a = 'abcde72';
preg_match('/[0-9]{2}/', $a, $match);
print_r($match);

[0-9]{1,}でもいいけど
505nobodyさん:2007/04/20(金) 19:28:13 ID:???
>>502-503
正規表現は正規表現用の関数(ereg*とかpreg*とか)でないと使えないぞ
506nobodyさん:2007/04/20(金) 19:34:49 ID:ebFeEZPT
なるほど、助かった。サンクス
507nobodyさん:2007/04/20(金) 19:36:52 ID:???
なんかこの時間帯、脱力系質問多くない?w
508nobodyさん:2007/04/20(金) 19:43:50 ID:???
ていうか502はマニュアル見て勉強したほうがいいよ。
ソースみてると、変な参考書か適当な解説サイトっぽい粗雑な感じが見受けられる。
509nobodyさん:2007/04/20(金) 20:38:41 ID:jA1Wv9zp
沖縄県の方へ(命に関わる注意事項です)

沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…

※一国二制度
 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
 さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
 そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。

今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
510nobodyさん:2007/04/20(金) 21:31:53 ID:2s51Ybcs
2年間でWEB製作とプログラミングを
平行して覚えたいんだけど
無理すれば可能かな?
511nobodyさん:2007/04/20(金) 21:34:59 ID:???
一般的に独学は効率が悪いのは確か
512nobodyさん:2007/04/20(金) 21:39:20 ID:???
>>510
口より先に手が動かない人じゃないと無理。
513nobodyさん:2007/04/20(金) 21:39:58 ID:???
>>495,>>496
スキルが落ちる同一人物と見た。
514nobodyさん:2007/04/20(金) 21:49:39 ID:???
>>513
またいつもの、話に入りたいけど入れなくて、
とりあえず何か言っておかないと気がすまない人ですか?
>>495の言ってることは業務でも至極当たり前。
515nobodyさん:2007/04/20(金) 22:00:05 ID:???
即座に反応するのが、いつもの人っぽいなw
516nobodyさん:2007/04/20(金) 22:04:41 ID:???
ファイルポインタの現在位置(オフセット)はftellでわかるそうですが
現在位置の行数って調べることはできますか?
517いつもの人 ◆3Htx6mDqZs :2007/04/20(金) 22:06:08 ID:???
> またいつもの、話に入りたいけど入れなくて、
> とりあえず何か言っておかないと気がすまない人ですか?

>>513は偽者
518いつもの人 ◆3Htx6mDqZs :2007/04/20(金) 22:08:41 ID:???
>>516
できない
519nobodyさん:2007/04/20(金) 22:11:53 ID:???
は?できるだろ。やっぱり、いつもの人はスキルがないな。
520nobodyさん:2007/04/20(金) 22:14:04 ID:???
>>493の話をぐだぐだやっるみたいだが
前提条件を少しは考えてから話をしたら?

"こういうWebページがネット上にあったとして"
という書き方からすると、その "ページ" とやらが一次情報なんじゃねーのか

>>507
スレタイ通りでいいんじゃまいか
521nobodyさん:2007/04/20(金) 22:14:27 ID:???
行数というデータに意味は無い。
そもそも行数の実体は先頭からの改行コードの数 + 1。
522nobodyさん:2007/04/20(金) 22:20:51 ID:???
>改行コードの数 + 1
これが答えだな
523nobodyさん:2007/04/20(金) 22:33:27 ID:???
>>516はftell()みたいに
ファイルポインタから行数取れるやり方はあるのか
と訊いてるんじゃないの?

そういう意味なら、一発でとれる方法は無いから
自分でファイルの先頭から見ていって
改行をカウントしろ、とか丁寧に書くのはスレ的に無粋ですかね
524nobodyさん:2007/04/20(金) 22:45:50 ID:???
>>489
Perl用だけど基本的に同じ使い方なので役には立つはずだよ
「:: Cepheid :: - ImageMagickの使用例」
ttp://www.ss.iij4u.or.jp/~somali/web/im_example/im_example.html
525nobodyさん:2007/04/20(金) 22:47:16 ID:5u2maBIV
ファイルポインタを弄って処理中なんだから、
その時点で改行をカウントできるだろ。ftell(ファイルポインタ)と同じ程度の
水準でカウントできないとでも?
526nobodyさん:2007/04/20(金) 22:51:14 ID:???
お前等親切だなぁ
ID出してないから放置してもいいのに
527nobodyさん:2007/04/20(金) 23:29:10 ID:???
>>521-523
ありがとう
fgetsで各行読み込む毎にカウントして
なんとかやりたいことができました
528nobodyさん:2007/04/21(土) 00:29:45 ID:LOF7z3oT
設計についてなのでスレ違いだと思うんですけど、何処で聞けば良いのかよく分からないのでここで聞いて見ます。

今PHPのメンバー機能付きのスクリプトを作っているのですが・・・
例えば、メンバーデータで、メンバーが決めたユニークな英数字のID「userid」があったとして
他のデータとの結びつけや呼び出しなどをこのIDでするか、
それともこれとは別に、auto_incrementでつけた数字のIDも持たせて
裏側の処理は数字のIDでやった方が良いのでしょうか?

絶対ユニークなものであれば、英数字のIDでも問題ないでしょうか?

よかったら意見聞かせてください。
529nobodyさん:2007/04/21(土) 00:30:43 ID:???
>>528
DB設計の話なら
数字のプライマリーキー設定したほうが若干スピードが上がる
530nobodyさん:2007/04/21(土) 01:03:45 ID:???
主キーとユニークで違うもんなの?
531nobodyさん:2007/04/21(土) 01:24:03 ID:???
>>530
MySQLの場合
INTなら4バイト、SMALLINTなら2バイト
英数字IDの最大長は知らんが
どっちがプライマリキーに適しているかはわかるべさ
532nobodyさん:2007/04/21(土) 01:34:08 ID:???
何が4バイトで何が2バイト?
533nobodyさん:2007/04/21(土) 01:52:04 ID:???
メモリ領域ってわかるだろ。常識的に考えて。
534nobodyさん:2007/04/21(土) 01:55:59 ID:4pjJu4sq
ファイルを下から読み込む方法を教えてください。
535nobodyさん:2007/04/21(土) 01:57:03 ID:???
いや主キーとユニークの検索スピードの違いとそれがどう関係してるのかっつー話。
536nobodyさん:2007/04/21(土) 01:58:49 ID:???
>>529
つっても比較回数がたかだかO(log n)しかないんだから、
別にどっちでも大してかわらないという話もある。
ものによってはO(1)だったりするし。

それとは別にauto_incrementとかが使えるのが便利だから、
という理由でIDは整数にすることが多い。
537nobodyさん:2007/04/21(土) 01:59:55 ID:???
>>534
「下から」とは?
テキストファイルを一番下の行から順番に読むってこと?
538534:2007/04/21(土) 02:03:25 ID:???
>>537

そうです。
説明不足ですいません。
539nobodyさん:2007/04/21(土) 02:03:45 ID:???
>>534
>>537の言うことを前提とすると、
array_reverse(file("hoge.txt"));
これでhoge.txtが下の行から配列に入る。
540534:2007/04/21(土) 02:30:30 ID:???
>>539

ありがとうございます!
541nobodyさん:2007/04/21(土) 03:08:15 ID:???
>>472-473
遅くなりましたが、詳細な説明ありがとうございます。
大変参考になりました。
542nobodyさん:2007/04/21(土) 03:33:07 ID:LOF7z3oT
>>529-536
色々意見有難う御座います。
現状、useridとは別にauto_increment(userno)を持たせて内部ではこのusernoで色々やってるのですが
たまにuserid→usernoを検索したり、その逆を検索したりと言う処理が入ってくる為
それほど変わらないようでしたら、useridで処理を行うように変えてみたいと思います。
参考になりました。
543nobodyさん:2007/04/21(土) 03:35:32 ID:LOF7z3oT
あ、ちなみに↑を変更すると同時に
useridをプライマリキーに変えようと思います。
544nobodyさん:2007/04/21(土) 03:45:27 ID:???
つーかwhere句で指定するカラムに張らないと基本的に無意味だろ
545nobodyさん:2007/04/21(土) 04:44:50 ID:???
546nobodyさん:2007/04/21(土) 07:12:06 ID:9SFJ2Fse
PHPで検索機能を作ってます。
通常の検索機能はできたのですが
-(マイナス)を付けた文字を除く機能はどうやるとよいのでしょうか?
547nobodyさん:2007/04/21(土) 07:23:57 ID:???
正規表現による置き換え。
$str = "abc123+-=";
$newstr = preg_replace('/-/', '', $str);
echo $newstr;
548nobodyさん:2007/04/21(土) 07:28:15 ID:???
>>547
何をやってるんだこの人は…
549nobodyさん:2007/04/21(土) 07:32:01 ID:???
>>548
いちいち煽らないで間違ってると思うなら正しい答えかけよ。
550nobodyさん:2007/04/21(土) 07:40:22 ID:???
>>547
今できてるところを晒したら?
じゃないと質問があいまいで答えようがねーずら
551nobodyさん:2007/04/21(土) 07:51:37 ID:???
abc123+-=
abc123+ -=
=入らないって事?
552nobodyさん:2007/04/21(土) 08:05:54 ID:???
いつもの人じゃないの?放置でおk
553nobodyさん:2007/04/21(土) 08:19:11 ID:???
>>547
>正規表現による置き換え。
には吹いたw

どこに正規表現使ってるのww

答えstr_replace
554nobodyさん:2007/04/21(土) 09:33:51 ID:???
574がなにをやりたいのかはわからんが、
/-/ だって立派な正規表現だろ
555nobodyさん:2007/04/21(土) 09:37:36 ID:???
ああ、546に対する答えか。547は。なにがやりたいかもわかるな。
>>553はいつもの人か?
556nobodyさん:2007/04/21(土) 11:40:10 ID:PuJ1NL9p
構造について質問です。よくある会員登録フォーム・申込みフォームでは、

個人情報+企業情報+アンケート

などの入力枠がありますが、これらの保存先はすべて同じファイル(もしくはDB)
上にした方が良いのでしょうか?それか、用途毎に分けた方が良いのでしょうか?

1つにするとファイルを分ける手間が減りますが、ログが長くなって重くなる気がします。
かといって複数に分けても処理が早くなるのかもわかりませんし・・。
557nobodyさん:2007/04/21(土) 11:53:38 ID:???
複数に分ける r + w * 3
一つにまとめる r + w *1
558556:2007/04/21(土) 12:11:59 ID:???
>>557
と言う事は、やっぱり1つにまとめた方が、処理も早いわけですかね?
DBの場合、全部一つにするとフィールド数が多くなって、それだけ処理が
遅くなると思っていました。(前にこのスレでも言われたような・・。)

それにDBでもテキストログでも長くなると見づらいと思っていたのですが、
プログラム的には処理が早いほうが良いので、1つにまとめた方が良いですね。
559nobodyさん:2007/04/21(土) 12:30:40 ID:???
フィールド数を増やすのは最悪の手法
正規化で検索してきてください
560556:2007/04/21(土) 14:05:14 ID:???
>>559
それじゃ、やっぱり分けた方が良いのですか?
これまでは正規化を考慮して、複数テーブルに分けていました。

ただ、>>556に書いた用途だと分けた方が処理が早くなるのか遅くなるのか
よくわからなくなって、質問した次第です。

今までは、分けて、必要な時のみ情報を追加していました。
(例えば、企業情報が入力されていない場合は、
 企業情報用のテーブルに追加しない など)
561nobodyさん:2007/04/21(土) 14:14:20 ID:???
1カ所でしか使わないなら分ける必要なんてなくね?
562nobodyさん:2007/04/21(土) 14:17:31 ID:???
>>559
会員登録時に企業を選択式にでもするの?

>>556
会員登録でアンケートというと普通一過性の情報なので
こいつだけ外に出しておいた方がいいかもしれない

申し込みフォームというと「システム的に情報を再利用せず
あとは人間が読むだけ」って感じをイメージしたけど
そういう場合は一まとめにしたCSVがあると便利
563いつもの人 ◆3Htx6mDqZs :2007/04/21(土) 14:17:31 ID:???
ログファイルはfp最後にしたら最速、ヨルダンまでぶっ飛ぶからDB1択
そんなに速度にこだわるのはなに?
564556:2007/04/21(土) 14:30:49 ID:???
>>561
自分もそう思って質問した次第です。

>>562
そうですね。アンケートだけは分けた方が良いかもしれませんね。
確かにCSVやログに落とした時に、個人情報と企業情報が繋がっている
方がわかりやすいし、見やすいですからね。

わけると、単純にそれだけ処理の回数が増え、負荷もかかると思っていたんです。
今までは、
a)個人情報だけ入力  →memberのテーブルのみデータを追加
b)個人情報+企業情報 →memberとcompanyのテーブルのみデータを追加
c)個人情報+企業情報+アンケート
  →memberとcompanyとankのテーブルにデータを追加

みたいな事をしてました。編集の時は、それぞれのテーブルに会員IDの
データが登録されているか否かを判別して。

ただ、それをすると正規化としては良いんだろうけど、見づらいし、
余計な処理も入ると思い、質問しました。
やっぱり個人情報と企業情報は一緒にします。ありがとうございました。
565nobodyさん:2007/04/21(土) 17:52:52 ID:???
アンケートフォームなんて正規化必要ないし・・・
566nobodyさん:2007/04/21(土) 17:58:40 ID:???
初心者は教えてgooで聞くほうが的を得た回答や回答率もいいよ。
567nobodyさん:2007/04/21(土) 18:11:02 ID:7D1RcruI
FTPでアップロードをして「更新日時」が新しくなってしまったファイルがあるのですが、
PHPで(Linuxのコマンドライン?)更新日時を古く変更などすることはできますでしょうか?
568nobodyさん:2007/04/21(土) 18:20:42 ID:vgvHFl4R
無理だとは思うが
フォームを使わずにPOSTデータ送信とかできないよな
569いつもの人 ◆3Htx6mDqZs :2007/04/21(土) 18:28:40 ID:???
>>567 touch
>>568 fsocket
570いつもの人 ◆3Htx6mDqZs :2007/04/21(土) 18:30:58 ID:???
fsockopen だった
571nobodyさん:2007/04/21(土) 18:45:47 ID:RkazuUUh
すみません、質問です。
Smartyってありますけど、皆さん使ってますか?
MVC実現のために便利と本には書いてありますけど
必ずしも必須ではないし、変なエラーもおおいみたいだしで気後れしつつ、
気になっている状態です。
(サンプル動かしてるけどエラー多発でイライラです)

どうなんですか? 
プロとして活躍されてる人の現場では利用して当たり前なんでしょうか?
僕はシロウトです。(デザイナが幅を広げたくてphpやってます)
572nobodyさん:2007/04/21(土) 18:52:42 ID:???
>>571
当たり前でもないし別にいらない
573nobodyさん:2007/04/21(土) 18:54:55 ID:7D1RcruI
>>569
ありがdです。
touch() [function.touch]: Utime failed: Operation not permitted
フォルダ777でファイル666とか変えてもエラー出まくってるけど、頑張ってみます。
574nobodyさん:2007/04/21(土) 19:07:27 ID:???
いつもの人はほんとレベルが低すぎるな
575nobodyさん:2007/04/21(土) 19:08:58 ID:???
そこでロム組みのおれが参戦しますよ
576nobodyさん:2007/04/21(土) 19:21:37 ID:???
>>573
ファイルの所有者じゃないと更新時間の任意変更はできないんじゃね
スクリプト実行時のユーザが誰か調べてみ
577nobodyさん:2007/04/21(土) 19:50:08 ID:sL28nTPU
沖縄県の方へ(命に関わる注意事項です)

沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」等で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…

※一国二制度
 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
 さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
 そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。

今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
578573:2007/04/21(土) 20:24:34 ID:7D1RcruI
>>576
FTPでアップしたファイルだと、ファイル所有者が自分のユーザ名になってました。
面倒だけど、PHPからファイル作成して所有者apacheのファイルを作ってから
touch()でOKでした。ありがとうございました。
579nobodyさん:2007/04/21(土) 21:07:50 ID:???
>>566
聞いたが答えこない…
ちと難しいこと言ったかな
580nobodyさん:2007/04/21(土) 23:30:34 ID:0pUFJgAt
PHPを勉強しようと思うのですが、本買う金も、近くに書店もないので、分かりやすい解説サイトを教えていただけませんか?
581nobodyさん:2007/04/21(土) 23:41:57 ID:???
582nobodyさん:2007/04/21(土) 23:42:14 ID:Ja/OZfS8
初めて2、3ヶ月
さて次は何をやったらいいんだろうか・・・
今までHTML→JS→FLASH(AS)とやってきました
付け加えるとPHPとプログラムじゃないけど
リナックスも少しかじりました
583nobodyさん:2007/04/21(土) 23:45:41 ID:???
>>582
ここは人生相談スレじゃないんだが。
584nobodyさん:2007/04/22(日) 00:01:12 ID:???
>>582
会計
585nobodyさん:2007/04/22(日) 00:49:17 ID:J1vbWRUn
array([0]=>'foo',[1]=>'bar')をarray('foo'=>'bar')にする配列関数ってありますか?
586nobodyさん:2007/04/22(日) 00:52:39 ID:???
jsって今更勉強する必要ある?
587nobodyさん:2007/04/22(日) 00:54:33 ID:Du7ZfW0q
>>581
ありがとうございます。
よくみたら>>1に書いてあったんですね^^;
よく読まずに失礼しました。
588nobodyさん:2007/04/22(日) 00:59:20 ID:???
>>585 配列関数のところ探してみるといいよ^^

>>586
googleが使いまくってるから勉強してもいいと思う
589nobodyさん:2007/04/22(日) 03:43:29 ID:???
>>586
それがJavascriptのことならば、Ajaxでググってみると勉強する必要があるかどうか判断できると思う。
590nobodyさん:2007/04/22(日) 04:48:40 ID:???
jsに完全にとってかわるスタンダードは無いわけで、「今更」って表現は理解して無いゆえの表現な気がする。
591nobodyさん:2007/04/22(日) 05:05:28 ID:6BzHCPPl
PDOにインサートした行の主キーを返してくれる関数ってありますか?
592nobodyさん:2007/04/22(日) 05:30:29 ID:???
GoogleマップのせいでAjaxが一気にはやってから
非同期通信してない普通のJavaScriptつかってる
サイトが増えたけどマジで勘弁してほしい
本気でうっとしいぐらいJavaScriptはちゃんと動かない
593nobodyさん:2007/04/22(日) 05:41:10 ID:???
それjsが悪いんじゃなくて、使い方が悪いだけじゃねぇの・・
594nobodyさん:2007/04/22(日) 06:13:24 ID:???
作ったやつがヘボなだけ…といいたいところだが、
javaScriptの互換性問題は、ブラウザのベンダーもヘボだからなあ。
標準のテストケースくらい作ってそれにパスしたものだけを
リリースするって態勢を何故とれない。
595nobodyさん:2007/04/22(日) 07:04:12 ID:???
そういえばPHPProってサイトがあるんだけど
そこって関数にポインタもっていくとその関数
マニュアルがポップアップしてくる。(JavaScript)

で、ポインタを関数からはずすとポップアップが
消えるんだけど30%の確立で消えずにずっと画面
に残る

ああいうのが一番イライラする
596nobodyさん:2007/04/22(日) 09:06:59 ID:???
すれ違いではあるが
Javascriptは
オブジェクト指向の言語だからな。
HTMLをかじったくらいのやつがまともにかけるはずがない。
外出だがブラウザの互換性も面倒だし。
それにまともな書籍がペーパーバックしかないしな。
597nobodyさん:2007/04/22(日) 09:08:27 ID:???
>>585
ない。組み合わせでやるしかない。
598nobodyさん:2007/04/22(日) 09:15:48 ID:???
combineじゃだめ?
599nobodyさん:2007/04/22(日) 11:46:47 ID:b9VJcguV
すみません、質問です。
以下のようなエラーが出たんですが、どういう意味なんでしょう?
Warning: Smarty error: unable to read resource: "store.tpl" in C:\php\include\SMARTY\libs\Smarty.class.php on line 1095

"store.tpl"を読み込めない、Smarty.class.php の 1095行目で処理できない って意味でしょうか?
問題があるのは"store.tpl"でOKですか?
600nobodyさん:2007/04/22(日) 12:00:24 ID:???
Smarty.class.php の 1095行目で、おそらく store.tpl を include しようとしているが、store.tpl が開けず読み込めてない。
たぶん store.tpl が存在しないか、テンプレートディレクトリの指定とかが間違ってるんでしょ。
601nobodyさん:2007/04/22(日) 12:20:47 ID:ctFC3eVb
PHPで、

list($abc,$def) = explode('/',$_SERVER['PATH_INFO']);

として、URLから ?= などを消そうと思っていますが、
www.○○○.jp/abc/def などとしてアクセスすると、
画像やCSSが読めなくなってしまいます。
(実行しているファイルの階層が変わってしまったような感じです)

原因が分からないのですが、パラメータも一つ目しか
受け取れません。


.htaccessは下のようにしています。

<FilesMatch "html$">
ForceType application/x-httpd-php
</FilesMatch>

AcceptPathInfo on
Options MultiViews

考えられそうな原因を教えてください。
602nobodyさん:2007/04/22(日) 12:30:57 ID:b9VJcguV
>>600
なるほど! すぐ確認してみます!!
ありがとう!
603nobodyさん:2007/04/22(日) 13:24:04 ID:XnNxCKoz
セッションの仕組みを検証しています。

ブラウザの更新ボタンを猛連射すると、セッションが切れる場合があります。
HTTP リクエスト、レスポンス上の Cookie のセッション ID のやり取りには問題はないので、
サーバ側の session_start あたりのPHPの処理が追いつかないからですかね?
他にも session_regenerate_id 等を処理しています

// リロードしまくる相手は切れてしまっても問題ないとは思いますが
604nobodyさん:2007/04/22(日) 13:43:58 ID:???
>>603
セッションの生存期間はどうしてる?
更新連打でセッションが切れるのは生存期間の切れたセッション
をガーベジコレクタが片付けるからだろう
605nobodyさん:2007/04/22(日) 13:52:34 ID:yrmSDayR
>>598
用途が違うから出来ないんじゃないの?


>>601
言ってることが不明。
list($abc,$def) = explode('/',$_SERVER['PATH_INFO']);
でなにを取得したいの?
$a = explode('/',$_SERVER['PATH_INFO']);
print_r($a);
してごらんよ。/abc/defなら配列4個になってるはずだ。
パラメタ1つ目(abc)なのはあたりまえだし。
606603:2007/04/22(日) 14:07:18 ID:XnNxCKoz
>>604
session.cookie_lifetime は 0 でセッションクッキーにしています
GC の動作は、検証用に 100% (1/1) の確率で 4 分経過したものを対象にしていますが、
連続リロードとは関係ありますかね?

「他にも session_regenerate_id 等を処理〜」と書きましたが、
session_start した後、セッション変数 expire (アクセス時間に 3 分追加した有効期限)
をチェックする処理を通しています。

expire が存在しない => 新規で有効期限をセット
存在、有効期限内 => expire を更新し、session_regenerate_id(true)
存在、有効期限外 => 全セッション変数を unset 、expire を再セットし、session_regenerate_id(true)

のようなちょっと回りくどい処理をしていますが、
ここら辺の処理のどこかが追いついていないのかな、と現状想像しています。

書き忘れましたが、PHP 5.2.1 です
607nobodyさん:2007/04/22(日) 14:17:21 ID:dThJ7LN8
関数のパラメーターの数って指定数があるのでしょうか?

function hogeHoge($aaa,$bbb,$ccc,$ddd,$eee,$fff,$ggg){
}

とすると、Missing argument 5 というエラーが出ました。
サーバはPHP5です。
608nobodyさん:2007/04/22(日) 14:30:58 ID:???
>>607
hogeHoge(1,2,3,4);
とかにしているからでしょ
function hogeHoge($aaa='mmm',$bbb='zzz',$ccc=TRUE,....
と、ちゃんと初期値を書くこと。
609nobodyさん:2007/04/22(日) 14:42:39 ID:???
文字列にインデントを入れる関数はありますか?
もしくは\nみたいなものでも良いんですが・・・
610nobodyさん:2007/04/22(日) 14:58:07 ID:???
>>609
ID出して質問しなおすこと
611603:2007/04/22(日) 15:02:39 ID:XnNxCKoz
度々すみません。

PDO で PDO_PGSQL ドライバを使用した際、
prepare() メソッドのパラメータ string statement に
意図時に正しくない、例えばプレースホルダ (:name や ?) がない文を
与えて実行すると、false を返さず、エラーログに

[notice] child pid ***** exit signal Segmentation fault (11)

を吐いて処理が終了します。
PDO::ATTR_ERRMODE を PDO::ERRMODE_EXCEPTION に設定した場合でも
PDOException をスローせずに同じエラーを吐いて終了します。
PDO_MYSQL ドライバでは問題なく false を返す、もしくは例外を投げてくれます。

細かいことだけど、環境と合わせてバグ報告したほうがいいのかな?
(sendpr したことないし、英語も自信ない)
612nobodyさん:2007/04/22(日) 15:42:00 ID:???
>>611
やりたければどうぞ。
英語なんか他のbugレポートを真似すりゃいいんじゃね?
613nobodyさん:2007/04/22(日) 15:52:39 ID:???
↑一生懸命検索してきたけど何もわからず的の得ない回答

以下、負け犬の遠吠え禁止
614603:2007/04/22(日) 16:17:12 ID:XnNxCKoz
>>612
最新の CVS 版入れてもでないか確認して、
PHP を --enable-debug でリビルドして
gdb でバックとレースした内容を添えて、
さらに英語で送るとか、へたれの俺には敷居が高い・・

誰かに変わって報告してもらうにも、環境によって出る出ないがあるかもしれないし。
とりあえず、余裕ができたら自分でやってみます。

>>613
まぁそんな言い方せずに
615612:2007/04/22(日) 16:36:13 ID:???
>>614
bug reportで、最後の「英語」の敷居それ自体は低い。
むしろ問題は、本当に、snapshot入れて出るのかどうかってことと、
出てレポートした後、feedbackするのを放置しがちってところだと思う。

>>613
segfaultに関するようなことはPHP Bugsとの関係でやることであって、それだけのスキルを
603はもってるでしょ。レス見れば判る。
616nobodyさん:2007/04/22(日) 16:53:21 ID:???
>>603
エキサイト翻訳

文体は短く切りながら書く。正しい日本語、漢字にできる語句は漢字を使う。
617607:2007/04/22(日) 16:55:51 ID:???
>>608
教えていただいたようにするとエラーが出ませんでした。
ありがとうございました。
618nobodyさん:2007/04/22(日) 17:10:14 ID:0zzEw5U5
19860523
から現在まで何年経っているか
簡単に出力する関数とかないですか
年齢チェックをしたいので…
619nobodyさん:2007/04/22(日) 17:18:27 ID:???
マニュアルはどこまで読みましたか?
620nobodyさん:2007/04/22(日) 17:26:45 ID:???
>>618
そのフォーマットで、単に年齢出せればいいんだったら日付関数なんかも使わず
$str = '19860523';
$str2 = '20070422';//今日の日付にしたいならdate()あたりで求める
$year = substr($str2,0,4)-substr($str,0,4);
if(substr($str2,4,4)-substr($str,4,4) >0 ){
$year++;
}
echo $year;
でいいんじゃない?。マニュアルってほどじゃない。
グレゴリウス暦1127年3月2日生まれの人間が今生きてたら、何日何秒生きてることになるか
ということになると日付関数じゃ足りずに、オプションのカレンダー関数とかでやるしかないと思うけど。
621nobodyさん:2007/04/22(日) 18:10:17 ID:???
つーか
substrもつかわず、単に$str2-$str1で終わるような気がする。
622nobodyさん:2007/04/22(日) 18:57:36 ID:???
>>596
サイ本は結構楽しいけど
まだ3版だとしたら、ちと古いがな
623nobodyさん:2007/04/22(日) 20:59:08 ID:bqPmYs5Q
PHP+PostgreSQLで今サイトを作っているんですが、
なぜか表示ができません。
DBの接続もOKでPHPinfoも出るのですが、
これ文字化けが原因で表示されないということって
ありますか?
624nobodyさん:2007/04/22(日) 21:04:15 ID:???
結果の中身が空なんだろ
625nobodyさん:2007/04/22(日) 21:06:05 ID:???
>>623
ソースを出せ

または全ての変数で var_dump するなりチェックしましょう
626nobodyさん:2007/04/22(日) 21:12:30 ID:???
もしくはcharsetでUTF-8指定してないからとかな
627nobodyさん:2007/04/22(日) 21:48:44 ID:bqPmYs5Q
<?
require('./include/init.php');
$name = $_POST{'name'};
$company = $_POST{'company'};
$tel = $_POST{'tel'};
$email = $_POST{'email'};
$address = $_POST{'address'};
?>
<html>
<head>
<meta http-equiv=content-type content="text/html;charset=x-euc-jp">
<title>・譯シ・カ。シナミマソ</title>
</head>
<body>
<b>・譯シ・カ。シナミマソ</b><br>
イシオュ、ホニ簣ニ、ヌホノ、ア、・ミナミマソ・ワ・ソ・。、キ、ニイシ、オ、、。」<br>
628nobodyさん:2007/04/22(日) 21:49:16 ID:???
EUCで投稿するなよ・・・
629すいません。623です。上もソースです。:2007/04/22(日) 21:49:25 ID:bqPmYs5Q
<table border=1 cellpadding=4 cellspacing=0>
<form action="ktouroku3.php" method="post">
<input type=hidden name=name value='<?echo $name?>'>
<input type=hidden name=company value='<?echo $company?>'>
<input type=hidden name=tel value='<?echo $tel?>'>
<input type=hidden name=email value='<?echo $email?>'>
<input type=hidden name=address value='<?echo $address?>'>
<tr><td align=center nowrap>、ェフセチー</td>
<td><?echo $name?></td></tr>
<tr><td align=center nowrap>イメフセ</td>
<td><?echo $company?></td></tr>
<tr><td align=center nowrap>」ヤ」ナ」フ</td>
<td><?echo $tel?></td></tr>
<tr><td align=center nowrap>」ナ。ン」ヘ」チ」ノ」フ</td>
<td><?echo $email?></td></tr>
<tr><td align=center nowrap>スサス・/td>
<td><?echo $address?></td></tr>
</table>
<input type=submit value='ナミマソ'>
</form>
</body>
</html>
ちなみにこのソースはPHP&PostgreSQLをそのままんま
コピーしたんですが...
630nobodyさん:2007/04/22(日) 21:49:49 ID:???
EUC(笑)
631nobodyさん:2007/04/22(日) 21:50:23 ID:???
<input type=submit value='ナミマソ'>

並マンコってどんなだよ
632nobodyさん:2007/04/22(日) 21:53:46 ID:???
で、なにを論評しろと言うのだ?
633nobodyさん:2007/04/22(日) 21:54:31 ID:???
必要なのは init.php の中身じゃね。
っていうかそのぐらいの判断が出来ないんなら、一からテキスト買って勉強したほうがいいよ。

いきなり難しい事を飛ばしてやっても無理。
634nobodyさん:2007/04/22(日) 21:57:51 ID:bqPmYs5Q
<input type=submit value='ナミマソ'>
を直せばいいのかな?
PHP&PostgreSQLにはinit.phpはEUC-JPに設定を直しました。
データベースはUTF-8です。
この本のとおりにやったのですが...

                       
635nobodyさん:2007/04/22(日) 21:59:31 ID:bqPmYs5Q
すいません。
文字コードをPHPはなににすればいいのでしょうか?
本見てやったのですが、
すいません。教えてください。
先ほどのカキコミは627です。
636nobodyさん:2007/04/22(日) 22:01:09 ID:???
もう全部統一してEUCならEUC一式にしろよ
637nobodyさん:2007/04/22(日) 22:02:19 ID:???
本を参考にしても環境に合わないとか色々あるけどなあ
とりあえずなんでEUCに拘ってるんだ
638nobodyさん:2007/04/22(日) 22:28:45 ID:???
じゃあUTF8に統一っていったら・・・ループするのか?
639nobodyさん:2007/04/22(日) 22:36:26 ID:bqPmYs5Q
EUCにしました。
文字のめちゃくちゃなところを直せば動くかな?
どうでしょうか?
後、誰も同じ本もっていないのかな?
もしかして俺だけ?
640nobodyさん:2007/04/22(日) 22:43:52 ID:???
エスパーじゃねえんだから、本、本って言われてもわかんねぇっすよ
641nobodyさん:2007/04/22(日) 22:48:48 ID:???
わかったけど
eo規制くらったから書き込めない
642627です。:2007/04/22(日) 23:03:33 ID:bqPmYs5Q
誰か教えてください。
お願い致します。

643nobodyさん:2007/04/22(日) 23:26:07 ID:???
とりあえず何でスクリプトソースに文字化けした文字書いてるの?
644nobodyさん:2007/04/22(日) 23:33:09 ID:???
627に質問がなにひとつ書いてない件について
645nobodyさん:2007/04/22(日) 23:35:27 ID:???
要するにID出しての、単なる荒らしってことで
646nobodyさん:2007/04/22(日) 23:45:04 ID:iPHGhE3V
ライブラリを作りたいのですが、
class〜でクラスでライブラリを貯めていくのと、
function〜でユーザー関数をファイルにただ詰め込むのは
どちらが推奨でしょうか?
はやりフレームワークのようにclassを使うのが妥当でしょうか?
ある程度たまってきたら全部公開したいと思っているので、
みなさまのご意見をお聞かせください。
647nobodyさん:2007/04/22(日) 23:52:34 ID:???
1週間に1回は出てくるOOPの是非はいい加減テンプレに入れるべき

>>646
どっちでもいいよ好きなように作ってください
648nobodyさん:2007/04/22(日) 23:56:59 ID:???
DBに格納する前にエスケープ処理をすれば
取り出すときにhtmlspecialcharsしなくてもいいと思うのですが
あるスレで格納する前は処理しなくて取り出すときにhtmlspecialcharsするような
ことが書いてあったのですがどちらがいいのでしょうか?
649nobodyさん:2007/04/22(日) 23:59:50 ID:???
>>646
根本的にクラスの捉え方を間違ってる
>>648
理由が分からないなら後者
650nobodyさん:2007/04/23(月) 00:06:03 ID:???
理由がわかっても後者をすすめる
651nobodyさん:2007/04/23(月) 00:08:17 ID:???
理由が分かったら前者を選ばないと思う
652nobodyさん:2007/04/23(月) 00:09:12 ID:???
>>648
変数を何らかの文法の中に埋め込む(HTMLとして出力する、SQL文を発行する、JSONとして出力する)
際にエスケープ。
理由はエスケープの目的(文法上のエラーや意図しない動作を防ぐ)と手段(エスケープ)
の対応が明確になり、必要十分なエスケープ処理を行えるから。

653nobodyさん:2007/04/23(月) 00:09:18 ID:???
高木さんの言うこともわからんでもないけど、
結局あれこれあるから、最終viewのところで制御するのが安全だなあ。
654nobodyさん:2007/04/23(月) 00:11:05 ID:???
でも格納前にSQLインジェクション対策はしろよな!

格納前というか発行前か?
655nobodyさん:2007/04/23(月) 00:16:17 ID:???
クエリ文字列を形成するときかな
656nobodyさん:2007/04/23(月) 00:27:38 ID:???
たかぎくんも意見も大事だと思うけど、あの人は自分の意見が絶対だと思ってるとこがやだ
657nobodyさん:2007/04/23(月) 00:34:41 ID:???
>>648
ttp://takagi-hiromitsu.jp/diary/20051227.html#p02

>>654-655
prepareStatement使ってればあんま意識しないけどな
magic quoteがONだとややこしいことになるけど
658nobodyさん:2007/04/23(月) 02:01:49 ID:J6ot4vJK
すいません。
627です。
この文字ばけを直せばきちんと表示されるでしょうか?
これが質問です。
よろしくお願い致します。
659nobodyさん:2007/04/23(月) 02:03:16 ID:???
>>658
直してみたら分かるんじゃない?
660nobodyさん:2007/04/23(月) 02:03:23 ID:Ks2m9GLI
何?
文字化けで直らないと文字化け直さないの?
見てあげたいけど携帯だしどうしようもない…
661nobodyさん:2007/04/23(月) 02:18:40 ID:???
>>658
お前あのソースどっからコピーしたの?

エディタからソースをそのままコピー?
それともブラウザで何も表示されてない状態で
右クリックしてソースを表示したのをコピー?

なんか後者の気がムンムンするんだけど・・・
もしそうならちゃんと結果は返ってきてるんだから
100%文字コードの設定だろう。

ちょっとブラウザの表示からエンコード変えてみれ
662nobodyさん:2007/04/23(月) 02:21:23 ID:Ks2m9GLI
>>661
ソースコピーしたらphp表示されなくね?
DWのソースコピーしたらこうなるよ
663661:2007/04/23(月) 03:03:56 ID:???
俺としたことがあああああああああああああああ
664nobodyさん:2007/04/23(月) 03:06:15 ID:???
>>627 はphp.ini の short_open_tag がoffなのに、<? だけで書いてる臭い。
665nobodyさん:2007/04/23(月) 03:21:53 ID:J6ot4vJK
意味がよくわからないのですが、直してまたうPします。
ありがとうございました。
666nobodyさん:2007/04/23(月) 08:28:11 ID:???
サーバに定期的にデータを蓄積していき、そのデータ数が一定の値を越えたら処理を実行させる
というような使い方をしたいのですが、
PHPでもcronなどを使えば実現できますがそういう処理はJAVA Servletやアプリケーションサーバ
向きかなと思いましてどうしようか悩んでいます.
どちらがいいでしょうか?経験者の方などがいましたら違いを教えてください.
667666:2007/04/23(月) 08:28:41 ID:sNG4PNgp
ID出し忘れたので出しときます
668nobodyさん:2007/04/23(月) 08:47:16 ID:LOUhoqIW
それトリガーじゃね?
669nobodyさん:2007/04/23(月) 09:09:25 ID:???
前スレにwebcronというやつが紹介されてたのを思い出した
670nobodyさん:2007/04/23(月) 09:15:04 ID:???
>>666
一番金のかからないやり方で実装すればいんじゃね
つか、なんでその文脈でサーブレットがでてくるのかわかんね
671nobodyさん:2007/04/23(月) 09:27:15 ID:???
クーロソ使えるなら使えばいいじゃない
672nobodyさん:2007/04/23(月) 09:56:28 ID:oOc9kXWC
質問です。
他人様が作成したphpスクリプトの一部にHTMLタグを加えたのですが
上手く反映されません…。
スクリプトはこちらの物です。 ttp://www.rocomotion.jp/php/p_link.php
左側のmenuバーの所にだけ<head>用のタグを貼り付けたかったので

#-----------------------------------------------
# フレーム部分(main)
#-----------------------------------------------

と言う項目の下にある<head>の下に付け加えたのですが、反映されませんでした。
アドバイス頂けないでしょうか。 よろしくお願いします。
673672:2007/04/23(月) 10:05:42 ID:oOc9kXWC
訂正です。

編集したのはメインスクリプト、
#-----------------------------------------------
# フレーム部分(menu)
#-----------------------------------------------
以下の部分でした。
674nobodyさん:2007/04/23(月) 10:19:31 ID:???
>>672
そこのどれだよ!

アドバイス
人の質問を見て、何を提示すれば回答が得やすいか考える。
675nobodyさん:2007/04/23(月) 10:33:47 ID:sNG4PNgp
>>670
servletやjspに関してあまり知らないので見当はずれなことを言っていたらすみません.
ただ、クライアントのリクエストに関わらず処理させるサーバにWeb特化のPHPは向いてないと聞いたので、
どのようなシステムを使うのが良いのか知りたかったので質問しました。
676nobodyさん:2007/04/23(月) 10:39:19 ID:???
>>675
一般解は無いよ。
もっと情報出せば答えが出るかもしれないけど。
677虚弱PHP:2007/04/23(月) 10:42:53 ID:???
>>603
ブラウザの処理の途中でリロードされてるんじゃないかな?
session_regenerate_idでIDが変更されたのに、
変更前のセッションIDを送ってるとか。
678虚弱PHP:2007/04/23(月) 10:46:04 ID:???
>>675
俺の周りではshellとPerl使ってる人が多かったかな。
俺はPHPのシステムだったら、バッチ処理もPHPで書いてた。
679nobodyさん:2007/04/23(月) 10:57:35 ID:???
>>674
失礼しました。

#-----------------------------------------------
# フレーム部分(menu)
#-----------------------------------------------
function frame()
{
global $title, $script, $col_devide;

print<<<head
<?xml version="1.0" encoding="shift_jis"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>

<head>の下に1行だけ加えただけです。
680nobodyさん:2007/04/23(月) 11:06:44 ID:???
だから何加えたんだよ
681648:2007/04/23(月) 11:07:10 ID:???
ありがとうございました
よくわかりました

たかぎさんのサイト面白いです
682nobodyさん:2007/04/23(月) 11:34:54 ID:???
>>680
<!--nobanner-->
683nobodyさん:2007/04/23(月) 15:34:47 ID:Ks2m9GLI
実務経験なしでフリーランスのアシスタントすることになったが不安
684nobodyさん:2007/04/23(月) 15:35:31 ID:???
>>683
イキロ
685nobodyさん:2007/04/23(月) 15:46:15 ID:EsFw1dKU
http://aaaa .com/ が公開サイトでのドメインだとします。
会員登録などしてログイン情報をセッションで持ち回る事で、
会員専用のページなどにもアクセス出来ます。

それはわかるのですが、SSLを使った場合はどうなるのでしょうか?
ただリンクをhttps://aaa .com/にすればいいだけなのでしょうか?
SSLのディレクトリにあるファイルでsession_start()とすれば、公開サイトの
会員IDなどが引き継げるのでしょうか?

独自ドメインでSSLを使ったサイトを作成した事がないので、気になりました。
686nobodyさん:2007/04/23(月) 15:58:34 ID:qAG2+B55
youtubeみたいなサイトつくってみたいんだけど、
参考サイトありますか?

特に動画アップロードの作り方が詳しくでているところ希望します。
687nobodyさん:2007/04/23(月) 16:22:09 ID:???
動画もファイルもアップロードは同じ
FLASH板いけ
688nobodyさん:2007/04/23(月) 16:24:52 ID:???
正規表現じゃなくて[A-Z0-9]を文字列として表示するにはどうすればええのん?
$unko 1++; とか以外の方法で。
689nobodyさん:2007/04/23(月) 16:37:07 ID:???
>>688
日本語でおk
690nobodyさん:2007/04/23(月) 16:39:32 ID:???
688は自己解決しますた
メタ文字のことです、、、うへへw
691nobodyさん:2007/04/23(月) 16:40:46 ID:LAYu+KhN
出来るならワンタッチで、しかも「情報起業」に特化した
ホームページ作成ソフトがあったらいいのに・・・。

もし、プロ並みにキレイなホームページが作成が出来たとしたら、
情報商材で一旗あげようと思っているあなたの人生は変りますか?

【早くも成功者続出!】起業サイトビルダー
http://www.infotop.jp/click.php?aid=16484&iid=5683
692nobodyさん:2007/04/23(月) 16:52:22 ID:???
クラスとインスタンスの概念がいまいちよくわからないです
抽象化とか実体化とかわけわかめです
簡単な例文とか見るとなんでいちいちこんなことするのかと思えるのですが
複雑な処理になってくるとクラスを使った方がいいというわけでしょうか?

簡単な例えで概念を教えてください。
693nobodyさん:2007/04/23(月) 16:55:11 ID:???
独り言ですが、何でもかんでも関数でまとめようとするのも考えものですね。。
必要なデータを参照する時に関数かし、その結果、処理がスムーズになると
思っていたのですが、関数化する事で複雑になりすぎて扱いづらくなってしまいました。

単純に別ファイルにしてincludeした方が良いのかも・・。
694nobodyさん:2007/04/23(月) 17:09:43 ID:hrPvjONA
>>692
クラス => 素材(変数)と料理の本(メソッド)
インスタンス=> ↑を準備した台所

ちょっと違うか

>>693
関数の使いどころ間違ってないか?
頻度の多い処理は、関数を作るべき
695693:2007/04/23(月) 17:21:45 ID:???
>>694
頻度の多い処理の中に、いろんな変数を参照する物があるんだけど、
そういう場合、その処理に使う変数をすべて関数内にいれなきゃいけないよね?
それをするのにソースが複雑になりすぎて、後から見直すと「どうだっけかな?」
っと思う時がある。俺の書き方が悪いのかもしれないが。
696nobodyさん:2007/04/23(月) 17:27:39 ID:???
>>685
それで問題ないよ
697nobodyさん:2007/04/23(月) 17:42:20 ID:???
>>691
宣伝乙
通報しますた
698nobodyさん:2007/04/23(月) 17:45:32 ID:???
>>695
自分で作った関数の使い方忘れてたら元も子もないわな
PHP Doc みたいに、説明文書いておけば?
699nobodyさん:2007/04/23(月) 18:03:03 ID:???
関数の前にコメントでどういうものか記述するわな普通。
700nobodyさん:2007/04/23(月) 18:03:29 ID:???
頻度関係なく関数は数行でぱっと見理解できる程度に分けたいけど
匿名関数つかえね
701nobodyさん:2007/04/23(月) 18:49:46 ID:YDuj5yCb
while文を変数に代入することってできますか?
702nobodyさん:2007/04/23(月) 18:52:17 ID:YDuj5yCb
自己解決しなすった
703虚弱PHP:2007/04/23(月) 19:01:59 ID:???
>>695
おそらく関数間の依存関係が強すぎるんだね。
そうだとしたら設計の問題。

それ以外だったら、オブジェクトにまとめて関数に渡せばOK。
704nobodyさん:2007/04/23(月) 19:05:39 ID:???
PHP5では参照渡しってデフォなんですよね?
以下の場合、&$hogeはどんな解釈になるんですか?
また、どっちがはやい?
class hoge {
foo($hoge) {
echo $hoge;
}
foo2(&$hoge) {
echo &$hoge;
}
}
705nobodyさん:2007/04/23(月) 19:11:51 ID:wES6lMlt
個人的好みを聞きます。初期config設定をするとき
1)override予定していないものは、出来るだけ定数にする
2)定数できるものも変数でやっちゃう
どっち派ですか?

あとconfigファイルは
1)phpファイルに書き込むか
2)iniあるいはcsv風テキスト
3)xmlなど
どれ派ですか?

あっしは(1)-(3)なんですけど。
706nobodyさん:2007/04/23(月) 19:14:18 ID:???
>>704
気になるならベンチ計ればいいだろうが馬鹿か?
707704:2007/04/23(月) 19:17:45 ID:???
>>706
計ったに決まってるでしょ…
私の環境だとたいした差がないし、どう違うのか分からないから聞いてるんですけど!
バカとは失礼な!
708nobodyさん:2007/04/23(月) 19:22:55 ID:???
大差ないなら大差ないんだろ
709704:2007/04/23(月) 19:30:33 ID:???
>>708
わかんないんなら黙っててくれる?
興味あるから知りたいだけですから…
あんたみたいな大雑把な人はプログラミング向いてないからやめた方がいいよ(迷惑だし)
710nobodyさん:2007/04/23(月) 19:37:26 ID:???
>>706
>>708
ネタにマジレス(・∀・)カッコワルイ
711nobodyさん:2007/04/23(月) 19:39:19 ID:???
>あんたみたいな大雑把な人はプログラミング向いてないからやめた方がいいよ
(´,_ゝ`)プッ
712nobodyさん:2007/04/23(月) 19:40:08 ID:???
春ですね^^
713704:2007/04/23(月) 19:40:52 ID:???
>>710さん
ネタじゃないですよ…○;ω;)…
クダラナイ質問ではありますが…
714虚弱PHP:2007/04/23(月) 19:49:15 ID:???
>>704
オブジェクトは参照渡しだけど他はPHP4と変わらず。
速度はZendエンジンがごちゃごちゃやるはずなのでコード依存じゃないかな。
715704:2007/04/23(月) 19:53:37 ID:???
>>714
ありがとうございます
>>ほか
みんなヒドイです…
ネットでいじめられてるみたいでショックでした さよなら
716nobodyさん:2007/04/23(月) 19:53:53 ID:???
はいさようなら
717704:2007/04/23(月) 19:58:49 ID:???
>>715-716
市ね!
じゃあな
718nobodyさん:2007/04/23(月) 20:01:09 ID:???
自分の環境が信じられないのに他人の環境は信じれるのか
719nobodyさん:2007/04/23(月) 20:04:19 ID:???
1→001
10→010
と修正したいのですが、
どうすればいいでしょうか?
720nobodyさん:2007/04/23(月) 20:08:28 ID:???
>>718
と言うより自分でテストしたにも関わらず
匿名掲示板で他人の意見聞いてそれを信じられるってとこがもうやばいなw
721672:2007/04/23(月) 20:17:35 ID:???
>>672ですが答えていただけませんか??
722nobodyさん:2007/04/23(月) 20:41:05 ID:???
>>721
>>674もいってるがそのサイトの
どのプログラムの
どのファイルなのかわかんねーと
わかんねーよ!!

ついでに、どう修正したのかも載せとくとか考えようぜ
質問の仕方が悪い

あと、そのサイトのプログラム
PHP使う意味あるの、って書き方だな…読みずらすぎ
723nobodyさん:2007/04/23(月) 20:43:46 ID:???
>>719
sprintf
724nobodyさん:2007/04/23(月) 21:06:21 ID:???
>>722
では改めて。
プログラムはこれです。 ttp://www.rocomotion.jp/manage/dl/plink.zip
plink.phpの以下を書き換えました。

#-----------------------------------------------
# フレーム部分(menu)
#-----------------------------------------------
function frame()
{
global $title, $script, $col_devide;

print<<<head
<?xml version="1.0" encoding="shift_jis"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<!--nobanner-->←追加

確認しましたがタグは有効になりませんでした。
但し、フレーム部分(main) の所のhead下に同じ様に書き加えたら有効になりましたが
全てのページに反映されてしまったのでダメでした。
メニューページにだけ有効にしたいのです。

よろしくお願いします。
725nobodyさん:2007/04/23(月) 21:13:05 ID:???
head
}
726nobodyさん:2007/04/23(月) 21:19:25 ID:???
>>724
plink.phpの154行目に以下を挿入
 $nobanner = ('left'==$frame) ? "\n<!--nobanner-->\n" : '';

すぐその下の<head>を以下に置き換え
 <head>' . $nobanner . '

なお、なにが起きても当局は一切関知しない
727nobodyさん:2007/04/23(月) 21:19:37 ID:???
>>724
・DLできません
・だから何を追加したんだ?
728nobodyさん:2007/04/23(月) 21:21:45 ID:???
高度な釣りだ
729724:2007/04/23(月) 21:31:56 ID:???
>>726
お手数お掛けします。
追加してみましたが、やはり全てのページで広告が消えてしまうのでダメでした。

>>727
直リンクだと弾かれるようです。 http://www.rocomotion.jp/php/p_link.php の下のほうにスクロールすると
Download linkが出るので、お手数ですがそこから落として貰えませんか。
あと追加の件ですが、>>724に書いてます…
730nobodyさん:2007/04/23(月) 21:35:03 ID:???
と思ったら出来てました。
>>726さん有難う御座いました。
731nobodyさん:2007/04/23(月) 21:39:39 ID:???
コピペ属性の教えて君は図々しいのが多いな
732719:2007/04/23(月) 21:54:11 ID:???
>>723
レスサンクスです、
001は数字ではなく文字列としてしか扱えないのでしょうか?

例えば、001 に1を足して002にしたい場合、
一旦1に戻して、sprintf使うしか無理なのでしょうか?
001から直接002にすることは不可能でしょうか?
733nobodyさん:2007/04/23(月) 22:24:27 ID:???
001はどう考えても文字列だろ
734719:2007/04/23(月) 22:49:33 ID:???
>>733
そうですか・・・・orz

ちなみに
sprintfでがんばろうと思ったのですが
1から001への変更方法はsprintf("%03d", 1)
でよいかと思いますが、
001から1への変更方法が思いつきません。
こちらもsprintfでいけるのでしょうか?
735nobodyさん:2007/04/23(月) 22:58:12 ID:???
intval($val)
sprintf("%d", $val);
736nobodyさん:2007/04/23(月) 23:01:32 ID:???
IDを001にするみたいな事は、サニタイズと一緒で表示する直前にやった方が良いよ。
737nobodyさん:2007/04/23(月) 23:09:18 ID:???
サニタイズいうと高木センセが怒っちゃうからメ!!w
738nobodyさん:2007/04/23(月) 23:19:38 ID:+n8U2EAi
WEB上で動画のサムネイルを表示させたいんだけど、どっかにサンプルコードまたは参考サイトないですかね?
739nobodyさん:2007/04/23(月) 23:26:04 ID:???
サンプルないですかじゃねーよ
まず自力で探せよ
googleでもyahooでも簡単にみつかるだろが
740nobodyさん:2007/04/23(月) 23:26:39 ID:???
>>734

$foo = 1;
sprintf ("%03d", $foo);
$foo++;
sprintf ("%03d", $foo);
741nobodyさん:2007/04/23(月) 23:29:28 ID:+n8U2EAi
>>739
だってお目当てのものが見つからなかったんだもん。
だから諸兄たちに聞いてんのさっ
742nobodyさん:2007/04/23(月) 23:31:13 ID:???
だったらどのページを見て、そこのどこが気に入らなかったかぐらい書けよ
環境に制限があるならそれも書け
二度手間になるだろ
743nobodyさん:2007/04/23(月) 23:39:47 ID:+n8U2EAi
動画 サムネイル 作成 PHP コード スクリプト
このあたりのキーワード絡めてググったかな〜

ffmpegってのにピピンときたが、よくわがんね。


オレの頭に制限ありってとこだ。
744nobodyさん:2007/04/23(月) 23:42:47 ID:???
言われたことにまともに答えられないのなら無視して構わないんじゃね?
745nobodyさん:2007/04/23(月) 23:43:50 ID:???
>>741
こんなんめっかった
ttp://ffmpeg-php.sourceforge.net/

英語は頑張って読め
746nobodyさん:2007/04/23(月) 23:51:20 ID:WTwJGp5Q
uge|hoge|[email protected]
みたいに、名前とメアドが区切られてるのを一行とし、
それを何個か作ったのをtxtに保存しておいて、

任意の行を削除したい、という時に、
その行以外を一度$tmpに保存したいんですけど、

$listf = fopen ("user.txt", "r");

list($fname,$lname,$mail) = fgetcsv($listf,4096,"|");

$tmp = "";

while (!feof($listf))
{
if(trim($fname)!=$usr)
{
$tmp .= $fname."|".$lname."|".$email."\ n";
}
list($dusername,$dpassword,$first,$last,$mail,$org,$lv) = fgetcsv($listf,4096,"|");}
fclose($listf);

こんな感じで試してみたんですがダメでした。
間違いか代替手段か何か教えてもらえないですか?
747nobodyさん:2007/04/23(月) 23:53:48 ID:???
どうダメだったのか書いた方がいいと思う。
748nobodyさん:2007/04/24(火) 00:00:26 ID:WTwJGp5Q
$tmp .= $fname."|".$lname."|".$email."\ n";
}
list($dusername,$dpassword,$first,$last,$mail,$org,$lv) = fgetcsv($listf,4096,"|");}
fclose($listf);
の$flist以降は
list($fname,$lname,$mail) = fgetcsv($listf,4096,"|");
です。

>>747
$tmpの中にちゃんとデータが入ってるか確認しようと
echo $tmp;
っていれてみたんですが、何もでてきませんでした
言葉足らずですいませんです
749nobodyさん:2007/04/24(火) 00:06:25 ID:???
とりあえず落ち着いてコードを張ってくれ
変数名がめちゃめちゃでどこから突っ込んでいいのかわからんw
750nobodyさん:2007/04/24(火) 00:16:27 ID:eGs+hfXK
$usr = $_GET['id'];

$listf = fopen ("user.txt", "r") or die("error");

list($fname,$lname,$mail) = fgetcsv($listf,4096,"|");

$tmp = "";

while (!feof($listf))
{
if(trim($fname)!=$usr)
{
$tmp .= $fname."|".$lname."|".$mail."\ n";
}
}
fclose($listf);

>>749
すいません。
貼り直しました。
751nobodyさん:2007/04/24(火) 00:34:59 ID:???
list($fname,$lname,$mail) = fgetcsv($listf,4096,"|");
はwhileの中でやろうね
752nobodyさん:2007/04/24(火) 00:35:19 ID:eGs+hfXK
どうやら自己解決できました。
お手数かけました。ありがとうございます。
753nobodyさん:2007/04/24(火) 00:44:36 ID:???
自己解決したらそれ書けよ
754nobodyさん:2007/04/24(火) 00:47:09 ID:???
phpはオブジェクトのメソッド呼び出しに->使うんですか
気持ち悪いんですけど。そんなところまでperl真似なくて
いいと思うんですけど。
755nobodyさん:2007/04/24(火) 00:51:31 ID:???
::のほが気持ち悪い
756nobodyさん:2007/04/24(火) 00:53:19 ID:???
気持ち悪いならPHPつかなけりゃいいだけの話
他にもたくさんwebで使えるいい言語はあるぜ
757nobodyさん:2007/04/24(火) 00:57:16 ID:???
アロー演算子ってPerlとPHPにしか無いの?
758nobodyさん:2007/04/24(火) 00:59:10 ID:???
>>757
C/C++でもある。
759nobodyさん:2007/04/24(火) 01:01:07 ID:???
あとPHPの$記号って何か意味あるんですか。
変数の前に$記号しかないなら、無くても同じだと思うんですが。
$記号打とうとして#と打ち間違えたりして、毎回いらいらするんですが。
760nobodyさん:2007/04/24(火) 01:02:35 ID:???
>>759
是非英語配列をお勧めするのだ
761nobodyさん:2007/04/24(火) 01:03:42 ID:???
PHPを捨ててCかJavaへ逝きなさい
762nobodyさん:2007/04/24(火) 01:03:47 ID:???
$がつけば変数ってことでたとえば

$a = 'baka';
$b->$a; // $a->baka

みたいなことができる。なんに使うのか? って疑問に思うだろうけど、
結構これは使い出がある。なんとも汚い文法だとは思うけどもね。
763nobodyさん:2007/04/24(火) 01:03:58 ID:???
じゃあruby使えよ
764nobodyさん:2007/04/24(火) 01:10:47 ID:???
XML扱う方法がRubyじゃ良くわからなかったので
PHPでやってみてたんですが、Rubyだけで何でもできるようになりたいです。
765nobodyさん:2007/04/24(火) 01:21:12 ID:???
766762:2007/04/24(火) 01:25:32 ID:???
>>763
ruby使ってますよ。むしろあれでリフレクションを覚えて
「おー、PHPでもできるワロス」とかいいつつ使っていました。

あと訂正

 $b->$a; // $a->baka (×)
 $b->$a; // $b->baka (○)
767nobodyさん:2007/04/24(火) 01:45:10 ID:???
#コメント
$変数
を打ち間違えていらいらするなんてプログラマとしてあり得ん。
768nobodyさん:2007/04/24(火) 01:52:21 ID:???
自分の覚えた言語が誰かに否定されたんだろ
で、周りでは皆PHP・・・あたし悔しい!みたいな?
769nobodyさん:2007/04/24(火) 01:56:15 ID:???
>>762
可変変数はインスタンス量産する時に必要になる
770nobodyさん:2007/04/24(火) 02:30:08 ID:???
>>754
遅レスだが、CGI=Perlっていうのが今でも当たり前になってるだろ?
PHPが浸透してきているとはいえ、今でもWebのシェアはPerlが大半を占めている。
Web特化というのが売りのPHPは、当然Perlを一番意識している。
なんでPerlに大部分が似ているかというと答えは簡単。
Perlユーザーを移行させるのが狙い。
他にもJavaやCからの移行者を増やすためにそれらの言語に似た処理を取り入れてる。
そして新規参入のプログラマにもとっつきやすい言語となっている。
利用者を増やすというのは勝ち残る為に一番の条件なのだよ。
771nobodyさん:2007/04/24(火) 02:35:22 ID:???
そしてperlはshとCの記法を踏襲したとっつきやすい言語。

・・・のはずであった。
772nobodyさん:2007/04/24(火) 02:41:44 ID:???
クラスの継承はJavaでもPHPでもextends
コレは全く問題ない。

だがしかし!
C#の「:」だけは許せねぇ!
ソースをざっと読んだだけじゃ見落としちゃうじゃないか!
773nobodyさん:2007/04/24(火) 08:00:41 ID:???
趣味でPHPやってたんだけど
学校でCとかJavaやると時々変数に$付けてしまう
774nobodyさん:2007/04/24(火) 08:18:37 ID:???
>>759
     あとPHPの$記号って何か意味あるんですか。
     変数の前に$記号しかないなら、無くても同じだと思うんですが。
     $記号打とうとして#と打ち間違えたりして、毎回いらいらするんですが。

この中で変数はどれですか? $記号ですか?
775nobodyさん:2007/04/24(火) 08:29:55 ID:???
>>773
たくさん言語覚えてる人なんていっぱいいるし慣れればなんとかなるもんさ。
776nobodyさん:2007/04/24(火) 08:39:47 ID:???
理系の俺は自然言語よりは楽だ
777nobodyさん:2007/04/24(火) 12:55:14 ID:sEkvt9e4
カレンダーで六曜(六輝)を表示する方法ってありますでしょうか
778nobodyさん:2007/04/24(火) 13:00:34 ID:???
鯖にインストールされてるPHPのモジュールを見る方法はありますか?
phpinfoみたいなやつです
779虚弱PHP:2007/04/24(火) 13:02:54 ID:???
780nobodyさん:2007/04/24(火) 13:03:04 ID:???
>>778
おまいは何を言ってるんだ。
phpinfoに書いてるだろ。
781nobodyさん:2007/04/24(火) 13:04:53 ID:???
また参考書買ってしまた
ろくに理解してないのに3万も使ってる…
782nobodyさん:2007/04/24(火) 13:05:37 ID:???
ここは日記帳じゃありません。
783nobodyさん:2007/04/24(火) 13:13:05 ID:aF4+VraQ
教えてください。
掲示板の書き込みとか、何かの新規登録受付フォームとかで
ランダムな文字をノイズの入った画像にして、
その文字を入力しないと登録できないようになってる仕掛けが
ありますが、あの仕掛け、フリーなCGI(PHP含む)でどこかに
ありませんでしょうか?
784虚弱PHP:2007/04/24(火) 13:13:22 ID:???
>>777
おっと、勘違い。
標準関数では無いと思う。
http://shain.tomocreative.net/2007/04/post_2.html
785虚弱PHP:2007/04/24(火) 13:17:42 ID:???
>>783
あれ、CAPTCHAというやつなので、検索してみてください。
786nobodyさん:2007/04/24(火) 13:22:26 ID:???
そういう名前でしたか、Thx >785
787nobodyさん:2007/04/24(火) 13:57:37 ID:???
CAPTCHAでガチャピソさんを思い出すのって俺だけ?
788nobodyさん:2007/04/24(火) 14:20:59 ID:43dSuuSB
[環境]
PHP4.4.6
RHL7.3
[行ったこと]

canpen.php
1. フォームからテキストエリア内に文字列を入力。$messages
2. POSTで飛ばす。$messages

canpen_write.php
3. $messagesの取得
$messages = str_replace("<", "<", "$messages");
$messages = str_replace(">", ">", "$messages");
$messages = str_replace("\t", "", "$messages");
$messages = nl2br($messages);
4. $messages出力。確認表示。
※改行されて、<>←も表示されている。
5. 「書き込み」ボタンにて、POSTで飛ばす。hiddenで。
→自ページ canpen_write.php
6. $messages取得。
ここで、再度、「3.」でやった文字列の整形をするんでしょうか?
で、再度整形して、$messagesを出力すると、
$messages:<ccc><br />
<ddd><br />のように出力されます。
はじめにフォームで、入力した文字列は、<ccc>エンターキー<ddd>エンターキー
です。(です。は、入力していません。)
<br />が出力されるので、これを出力させない方法があれば、
どなたかご教授して頂けないでしょうか?宜しくお願い致します。m(..)m



789nobodyさん:2007/04/24(火) 14:23:57 ID:43dSuuSB
[省略されましたので、省略された部分です。]
※改行されて、<>←も表示されている。
5. 「書き込み」ボタンにて、POSTで飛ばす。hiddenで。
→自ページ canpen_write.php
6. $messages取得。
ここで、再度、「3.」でやった文字列の整形をするんでしょうか?
で、再度整形して、$messagesを出力すると、
$messages:<ccc><br />
<ddd><br />のように出力されます。
はじめにフォームで、入力した文字列は、<ccc>エンターキー<ddd>エンターキー
です。(です。は、入力していません。)
<br />が出力されるので、これを出力させない方法があれば、
どなたかご教授して頂けないでしょうか?宜しくお願い致します。m(..)m
790nobodyさん:2007/04/24(火) 14:35:44 ID:???
>>788
質問評価:5点
791nobodyさん:2007/04/24(火) 14:41:12 ID:???
>>788
とりあえずstr_replaceじゃなく、htmlspecialcharsを使っとけ
タイミングとしては、「送信されたとき」というよりむしろ「表示するとき」にhtmlspecialcharsを呼び出せば間違いは減る
792nobodyさん:2007/04/24(火) 14:58:28 ID:43dSuuSB
>>791
791さん、ありがとうございます。
htmlspecialcharsで出力すると、&lt; &gt;と、そのまま&lt:&gt;
がブラウザに出力されます。実体参照に戻されて、<>等と出力されるはずが、
そのまま出力されます。
htmlspecialcharsを使用するときは、何か特別な設定がいるんでしょうか?
m(..)m
793nobodyさん:2007/04/24(火) 15:01:19 ID:43dSuuSB
もう少し色々調べて、トライ&エラーしてみます。
794nobodyさん:2007/04/24(火) 15:03:46 ID:???
レン鯖でインストールしてくれないモジュールとかを使いたいときどうすればいいですか?
795nobodyさん:2007/04/24(火) 15:09:53 ID:???
>>788
確認画面でhiddenに埋め込む方にはnl2brをかけなくていい
(表示する方だけにnl2brを行えばいい)
796nobodyさん:2007/04/24(火) 15:22:16 ID:43dSuuSB
>>791
Success!!です。成功しました。とても助かりました。
今やっている部分を頭の中にまとめて理解したいと思います。
791さんのおかげで、モヤモヤが今スッキリしていきそうです。
(まだ、完全に理解していないw)パターンで覚えるよりも、仕組みをキッチリ
理解していこうと思います。速レスでとても感謝しています。
ありがとうございました。m(__)m
797nobodyさん:2007/04/24(火) 16:26:10 ID:???
>>777
俺が昔作ったやつ
http://nike.s151.xrea.com/qreki.phps
798nobodyさん:2007/04/24(火) 16:27:18 ID:???
>>797
うわぁ^^;相当暇だったんだな
799603:2007/04/24(火) 16:41:18 ID:YIKrD66n
>>677
あれから調べてみましたが、
session_regenerate_id(true) の処理が問題のようでした
この処理を外したところ、問題は出なくなりました
また、session_regenerate_id() ではセッションが切れるということはありませんでした

今、セッションデータを file ではなく、
データベース上で処理する仕組みを作って検証しています

session_set_save_handler は使用せず、Cookie, GET, POST の値を拾って
独自に PDO クラスでセッション ID や有効期限を保存、更新処理等するものなのですが、
こちらは複雑な処理に関わらず、更新ボタン猛連射でもまったく問題が出ていません

session_regenerate_id(true) は、古いセッションデータファイルを
自動で削除してくれるとはいえ、DB コンテナに比べて
大したオーバーヘッドになるとも思えないし、
セッションファイルが多数存在するのなら別ですが、検証上では 5 ファイル程度です

推測ですが、session_regenerate_id(true) の処理には
連続リロードに耐えられない問題があるのではと思います
アクセスが多いサイトのセッションの仕組みに利用すると問題がでるかもしれません
800虚弱PHP:2007/04/24(火) 16:47:27 ID:???
>>799
俺も推測でしかないけど、
session_regenerate_id()で問題出ないなら、
余計にsession_regenerate_id(true)の問題じゃなくて、
ブラウザ側の問題だと思うよ。

ブラウザがサーバーから返されたCookieヘッダを解釈・設定する前に
F5押したとかじゃないかなぁと思うんだけど。
801nobodyさん:2007/04/24(火) 16:48:18 ID:???
>>797
お前相当暇人だなw
不覚にもこれには笑ったぜw
ttp://nike.s151.xrea.com/okki.php
802nobodyさん:2007/04/24(火) 16:57:34 ID:EJNwdirJ
>>794
適当な場所にライブラリパスを通して、そこにファイルコピーすればいい
803nobodyさん:2007/04/24(火) 17:11:14 ID:???
>>797
なにやってるのかさっぱり分かんねぇorz
804nobodyさん:2007/04/24(火) 17:11:47 ID:???
>>801
なんだよこれw
805nobodyさん:2007/04/24(火) 17:12:19 ID:???
>>801
ちょwさっきと比べてデカくなってないかw
806603:2007/04/24(火) 17:17:38 ID:YIKrD66n
>>800
どうも
>>603 で書いたとおり、HTTP リクエスト、レスポンス上で見る限りは
Cookie, Set-Cookie は切り替わったものを正しくやり取りしてるんですよね

今、独自 DB コンテナの方で session_regenerate_id(true) の相当の機能を
作成中でして、これで連続リロードしてみれば
ブラウザ側動作の影響かどうかある程度はっきりすると思います

ブラウザ側動作の影響なら、連続リロードした人間だけの問題になりそうなので
この件は無視できそうです

>>801
わらた
807797:2007/04/24(火) 17:58:01 ID:???
作ったのは間違いで参考元のを書き直しただけでした
>>803俺も何やってるのかさっぱりわからん
808nobodyさん:2007/04/24(火) 18:27:05 ID:???
おっきワロスwwwwwwwwww
809nobodyさん:2007/04/24(火) 18:33:05 ID:???
おっきのソースがないぞ
810虚弱PHP:2007/04/24(火) 18:45:46 ID:???
>>806
うむむ。そうかぁ。
save_handlerがmmだと切れるって話があったような気がするんだけど、
今回はfilesみたいだしね。
811603:2007/04/24(火) 19:25:37 ID:YIKrD66n
>>810
そちらのご推測通りでした
独自DB コンテナで再現した session_regenerate_id(true) 相当の機能でも同じ症状がでました

再度検証してみたところ、致命的な見落としがありまして
例えば連続で素早く 10 回程更新ボタンを押すと、サーバ側には
本来残らないはずのセッションデータファイルが 5 〜 10 近く残っているが、
HTTP Header キャプチャ(Live HTTP header on Firefox) 上では
3 つ程のやり取りしか残っていない・・

試しに ieHTTPHeader on IE で調べたら、Firefox で行った同じ速度でリロードしても
すべてキャプチャしてくるし、セッション自体も切れないみたい
Opera では Firefox 程ではないけどまれに切れる

ちなみに、GET だけに制限してみたセッション ID のやりとり(この場合はリンクの猛連射)
でも同じ症状がでるので、HTTP レスポンス自体を受け取ってないんでしょうね
どうもありがとうございました

// 正直、JavaScript や CSS 以外でブラウザ別の動作に悩まされるとは思わなかった
812nobodyさん:2007/04/24(火) 19:37:08 ID:???
おっきのソースください
813虚弱PHP:2007/04/24(火) 19:55:52 ID:???
>>811
ご苦労様。
検証は参考になりました。なるほど。
814nobodyさん:2007/04/24(火) 22:36:23 ID:DXOCGV6O
質問させてください

長ったらしいテキストファイルの1部分のみ情報を取り込みたいのですが、
そういうのに適した関数等はありますでしょうか。
815nobodyさん:2007/04/24(火) 22:39:13 ID:???
fopen
816nobodyさん:2007/04/24(火) 22:55:02 ID:???
fopenよりfileやfile_get_contentsのほうがいいんじゃね
817nobodyさん:2007/04/24(火) 23:10:20 ID:???
>>816 IDだそうね^^
818nobodyさん:2007/04/24(火) 23:38:17 ID:???
youtubeなどのフラッシュをRimoやニコのように動画データだけ抜き出したいのですが、
それらの仕組み、もしくはそのシステムが構築できてあるソースのURLなど知っている人がいましたら教えていただけないでしょうか。
819nobodyさん:2007/04/24(火) 23:38:55 ID:???
それどっかのブログで検証してたよ
URLはシラネ
820nobodyさん:2007/04/24(火) 23:51:38 ID:???
まず自分で調べたのか?調べたなら成果も書く
youtubeは解析されまくってるから仕様なんかはすぐ出てきそうだけど
821nobodyさん:2007/04/25(水) 01:01:57 ID:j8qAcKjI
.htaccessで文字コードをEUCにしたんだが
PHP見るとデフォルトでSJISになる
PHPに記述しないでデフォルトをEUCにできないかな
822nobodyさん:2007/04/25(水) 01:05:05 ID:???
>>817
^^?
823nobodyさん:2007/04/25(水) 01:50:29 ID:???
>>821
んならばHTMLのMETAタグでどうだ!
824nobodyさん:2007/04/25(水) 01:52:00 ID:j8qAcKjI
>>823
本のサンプル全部に記述がだるい…
825nobodyさん:2007/04/25(水) 01:58:40 ID:???
そういうのって保存時のエンコード指定してないからじゃない?
タグに記述してもPHPで指定しても文字化けすることもあるしね
EmEditorとかで保存時のエンコードをEUCに設定すればいいと思ふ
未確認
826nobodyさん:2007/04/25(水) 01:59:40 ID:???
というかShift-JISで保存してるからだろ
827nobodyさん:2007/04/25(水) 02:01:56 ID:j8qAcKjI
EUCで保存してあります…
828nobodyさん:2007/04/25(水) 02:03:16 ID:???
じゃあおまえのPHPがSJIS好きだってことで諦めろ、おまえのせいじゃない。
829nobodyさん:2007/04/25(水) 02:03:56 ID:???
じゃPHPのmb_string関連
830nobodyさん:2007/04/25(水) 02:10:20 ID:j8qAcKjI
EUCで設定してあります…


EUCに嫌われたかな
831nobodyさん:2007/04/25(水) 02:19:38 ID:???
mb_stringで指定しても無理だって話じゃないの?
それ前提で話してるのかと思ったけど
832nobodyさん:2007/04/25(水) 02:23:29 ID:???
ブラウザのキャッシュが残ってるとかじゃないの?
そういうレベルの質問にしか見えない。
833nobodyさん:2007/04/25(水) 02:26:57 ID:???
>>821
.htaccessの設定と
<html>のmetaタグの設定出しなさい。
834nobodyさん:2007/04/25(水) 02:28:29 ID:j8qAcKjI
キャッシュでしたさーせん
835nobodyさん:2007/04/25(水) 02:34:58 ID:???
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄
     ̄
836nobodyさん:2007/04/25(水) 02:35:23 ID:???
         ┌
         \
           >
          /
     (^^)/  なんてこったい!
    /\ ̄\
   /   \  \
  <      |   |
   \   / ̄ ̄\
    ゝ /       \
     /          >
    /        /
   /        /
837nobodyさん:2007/04/25(水) 02:36:25 ID:???
>>834
うわ・・・原因探ってた時間返せ
838nobodyさん:2007/04/25(水) 02:56:56 ID:???
いつも思うんだが、文字化けも一人で解決できない様な奴は
output_bufferingをonなんかにするなって話じゃない?
PHP初めて3年半たつがoutput_bufferingなんて一度もonにしたことねぇ
839nobodyさん:2007/04/25(水) 03:01:34 ID:???
テスト環境や自鯖なら好き勝手にphp.iniいじれるけどな。
840nobodyさん:2007/04/25(水) 03:04:32 ID:???
キャッシュ残していたのが原因で同じように一日潰したことがあったが、
そのときからキャッシュは1MBまでに制限してる。

更新する度にページをダウンロードするようには設定できないのかな。
841nobodyさん:2007/04/25(水) 03:12:30 ID:???
レン鯖でも.htaccessで設定すりゃいいじゃんoutput_bufferingくらい
842nobodyさん:2007/04/25(水) 03:14:01 ID:???
全てのレン鯖でhtaccessが使えると思ったら大間違いだぜ。
843nobodyさん:2007/04/25(水) 03:14:46 ID:???
環境に左右されないようなプログラムを目指せよ
844nobodyさん:2007/04/25(水) 03:17:52 ID:???
なんでいきなりoutput_bufferingの話になってんだ?
845nobodyさん:2007/04/25(水) 03:49:52 ID:???
おっきが output_buffering を利用している模様
846nobodyさん:2007/04/25(水) 04:18:44 ID:???
なんにしろブラウザのキャッシュにoutput_bufferingは関係ないな。
847nobodyさん:2007/04/25(水) 08:57:51 ID:???
レン鯖でいきなり開発とかすんなよ!
848nobodyさん:2007/04/25(水) 09:36:06 ID:Hk5iwc7F
GETを使って動的ページを作ろうと思うのですが
たとえば
index.php?hoge=0001
というページは存在するので、問題なく表示します。しかし
index.php?hoge=0002

index.php?hoge=
などのような場合今だと白紙?のページになります。
そこを、404や403を返すようにしたいのですが、どうすれば出来るのでしょうか?
849nobodyさん:2007/04/25(水) 09:44:28 ID:???
header()
850nobodyさん:2007/04/25(水) 11:53:14 ID:???
>>848
if (存在しないページ) {
header( レスポンスコード404を送る );
// 以下自分の好きな404のページ
?>
<html>
404 そんなページはないでやんす
</html>
<?php
exit;
}
?>
851nobodyさん:2007/04/25(水) 12:54:42 ID:j8qAcKjI
>>840
キャッシュが3GBになってたよ…
852nobodyさん:2007/04/25(水) 12:54:59 ID:1/ImtFz/
現在はカテゴリ一覧とか広告バナーとか
アクセスする度にDBから読み込まれている状態になっているのですが、
これだとサーバに負荷がかかって、ページの読み込みが遅くなる気がします。

こういう、あまり変動しないデータを読み込んで表示させる場合、
どういう風なソースを書けばいいのでしょうか?
853nobodyさん:2007/04/25(水) 13:04:12 ID:???
>>852
DB 側を更新したらその HTML 吐き出すとか
ページ丸ごとが難しければ、部分部分を吐いて include とか
854852:2007/04/25(水) 13:42:18 ID:???
>>853
例えばこういう流れでしょうか?

DBにカテゴリを登録(編集)→静的なHTMLページを作成
→そのHTMLを公開するサイトで読み込み

現在は、カテゴリ一覧の部分は別ファイルにしてincludeするようにしています。
そのファイル内にwhile($row = mysql_fetch_array($res)){ 〜 } 
みたいなソースを書いて、カテゴリ一覧を表示していました。

ちょっとHTMLの件は試してみます。ありがとうございました。
855nobodyさん:2007/04/25(水) 14:17:54 ID:???
>>854
静的なHTMLページを表示すればいいじゃん
てかコードで説明するな。口で説明しろ。
856nobodyさん:2007/04/25(水) 14:21:27 ID:???
>>855
??
857nobodyさん:2007/04/25(水) 14:27:36 ID:???
>>856
!?!?
858nobodyさん:2007/04/25(水) 14:39:28 ID:???
>>855
??
>>856
!!
>>857
?!?!
859nobodyさん:2007/04/25(水) 14:50:14 ID:???
die('ぬるぽ');
860nobodyさん:2007/04/25(水) 15:21:00 ID:???
>>858
??
861nobodyさん:2007/04/25(水) 15:35:07 ID:dvPhqtzS
>>855 ^^ ><
862nobodyさん:2007/04/25(水) 15:54:34 ID:???
http://plog.pya.jp/program/php/lesson07/sample01.html
このURLのスクリプトなら動くんだけど、スマートにしようと書き換えてみた。
すると、書き込んでも空の行が増えていくだけ。
なんですか?
863862:2007/04/25(水) 15:55:24 ID:???
form.php

<html>
<head>
<title>一行掲示板</title>
</head>
<body>
<h1>一行掲示板</h1>
書き込む内容を入力してください。
<hr>
<form name="form" action="./sample01.php" method="POST">
<input name=""body" Type="text" size"40">
<input type="submit" value="書込">
<hr>
</form>
<?php
$data = file("./data.txt");
for ($i=0; $i<count($data); $i++) {
print "記事NO.{$i}:{$data[$i]}<br>\n<hr>";
}
?>
</body>
</html>
864862:2007/04/25(水) 15:56:44 ID:???
<html>
<head>
<title>Sample01</title>
</head>
<body>
sample.php

<?php
$body = $_REQUEST["body"]."\n";
$fp = fopen("./data.txt","a");
fwrite($fp,$body);
fclose($fp);
?>
書き込み完了<br>
<a href="./data.txt" target="_blank">中身を見る</a><br>
<a href="./form.php">戻る</a>
</bady>
</html>
865nobodyさん:2007/04/25(水) 15:56:58 ID:???
意味不明
日本語勉強してから来いカス
866862:2007/04/25(水) 15:58:15 ID:???
× なんですか
○ なんでですか
867nobodyさん:2007/04/25(水) 16:01:36 ID:???
>>864にコピーミスあり
o...rz
訂正します
――――――――――――――――――――
Sample01.php

<html>
<head>
<title>Sample01</title>
</head>
<body>
<?php
$body = $_REQUEST["body"]."\n";
$fp = fopen("./data.txt","a");
fwrite($fp,$body);
fclose($fp);
?>
書き込み完了<br>
<a href="./data.txt" target="_blank">中身を見る</a><br>
<a href="./form.php">戻る</a>
</bady>
</html>
868nobodyさん:2007/04/25(水) 16:02:10 ID:???
自分で組んだ方が早いとおもうお
869nobodyさん:2007/04/25(水) 16:03:30 ID:???
原因が知りたい
870862:2007/04/25(水) 16:21:14 ID:???
間違いがあってわかりづらいと思うので、最初から書き直します。
871870:2007/04/25(水) 16:23:37 ID:???
http://plog.pya.jp/program/php/lesson07/sample01.html

このURL内のコーディングなら動くんだけど、スマートにしようと書き換えてみた。
すると、書き込んでも空の行が増えていくだけ。
なぜでしょうか?

以下のような具合
――――――――――――――――

一行掲示板
書き込む内容を入力してください。
----------------------------------------
|入力フォーム| |書込|
----------------------------------------

記事NO.0:

----------------------------------------
記事NO.1:

----------------------------------------
記事NO.2:

----------------------------------------
872nobodyさん:2007/04/25(水) 16:24:19 ID:???
いや、もう書かないで
873870:2007/04/25(水) 16:24:47 ID:???
まずはサイト例(ちゃんと動く)form.php

<html>
<head>
<title>一行掲示板</title>
</head>
<body>
<h1>一行掲示板</h1>
書き込む内容を入力してください。<hr>
<form name="form" action="./sample01.php" method="POST">
<input name="body" type="text" size="40">
<input type="submit" value="書込"><hr>
</form>
<?php
$data = file("./data.txt");
for($i=0; $i<sizeof($data); $i++){
print "記事NO.${i}:${data[$i]}<br>\n<hr>";
}
?>
</body>
</html>
874870:2007/04/25(水) 16:25:35 ID:???
サイト例 sample.php

<?php
$body = $_REQUEST["body"];
$body = $body."\n";
?><html>
<head>
<title>Sample01</title>
</head>
<body>
<?php
$fp = fopen("./data.txt","a");
fputs($fp,$body);
fclose($fp);
echo "書き込み完了<br>",
"<a href=\"./form.php\">戻る</a>";
?>
</body>
</html>
875nobodyさん:2007/04/25(水) 16:26:27 ID:???
死ね
876870:2007/04/25(水) 16:26:47 ID:???
書き換え版 form.php

<html>
<head>
<title>一行掲示板</title>
</head>
<body>
<h1>一行掲示板</h1>
書き込む内容を入力してください。
<hr>
<form name="form" action="./sample01.php" method="POST">
<input name=""body" Type="text" size"40">
<input type="submit" value="書込">
<hr>
</form>
<?php
$data = file("./data.txt");
for ($i=0; $i<count($data); $i++) {
print "記事NO.{$i}:{$data[$i]}<br>\n<hr>";
}
?>
</body>
</html>
877870:2007/04/25(水) 16:27:30 ID:???
書き換え版 sample.php

<html>
<head>
<title>Sample01</title>
</head>
<body>
<?php
$body = $_REQUEST["body"]."\n";
$fp = fopen("./data.txt","a");
fwrite($fp,$body);
fclose($fp);
?>
書き込み完了<br>
<a href="./data.txt" target="_blank">中身を見る</a><br>
<a href="./form.php">戻る</a>
</bady>
</html>
878nobodyさん:2007/04/25(水) 16:29:51 ID:???
そんなのも一人でどうにか出来ない様な奴が
スマートとかほざくなよw
段階踏んでから言えカスが
879nobodyさん:2007/04/25(水) 16:33:01 ID:???
>>870酷すぎ
リアルで死ね
880nobodyさん:2007/04/25(水) 16:34:04 ID:???
>>878
了解
881nobodyさん:2007/04/25(水) 16:43:37 ID:j8qAcKjI
PHP4でsimplexmlが使えないのですが
代わりになる関数はありませんか?
882nobodyさん:2007/04/25(水) 16:45:41 ID:???
PHP5を使えばいいんじゃね?
883nobodyさん:2007/04/25(水) 16:47:18 ID:j8qAcKjI
さくら鯖が5対応してないんで
884nobodyさん:2007/04/25(水) 16:54:22 ID:???
>>883
え、さくらってそうなんだ。
古い鯖利用だからか?

wing2.jpならいけるよ。
初年2000円で独自ドメイン運用可
翌年以降1500円。
885nobodyさん:2007/04/25(水) 16:55:40 ID:j8qAcKjI
co.jpてどの鯖でも使えたっけ?
886nobodyさん:2007/04/25(水) 17:04:25 ID:???
>>885
DNSサーバー側で飛ばす先のIPアドレス設定さえすれば関係あんめな。
ドメインが取れるか自体は別問題
887nobodyさん:2007/04/25(水) 17:20:37 ID:???
>>884
なにこれ安すぎ
信用はできないけど面白いな
888nobodyさん:2007/04/25(水) 17:26:19 ID:???
wing2
http://pc11.2ch.net/test/read.cgi/hosting/1154825445/
好きに評価したらいい
俺は絶対に遠慮する鯖です
889nobodyさん:2007/04/25(水) 17:28:40 ID:???
>>888
ゲェ・・・ありがとう。
890nobodyさん:2007/04/25(水) 18:08:21 ID:bcYDhRpq
PHPでajax使うのはどのライブラリがベストですか?
891nobodyさん:2007/04/25(水) 18:35:42 ID:???
>>883
5を独自コンパイルすればいいじゃん。簡単だよ。
どうせcgi版なんだから。
892nobodyさん:2007/04/25(水) 18:50:52 ID:???
>>887
スタッフ募集ここんとこずっとかけてないか?
激安サーバーで給料安いから、最近言われるITの3K化の代表格みたいなんじゃないか?

ただ、あなたも知らなかったように、まだマイナーだから負荷は軽いんじゃない?

メールもやってるが、メジャーサイトへのメアド登録でフリーメアドとして弾かれなかった。
それだけマイナー。
893nobodyさん:2007/04/25(水) 19:48:06 ID:???
隠れてないででてこいや
かもんムムキチい
894nobodyさん:2007/04/25(水) 19:49:51 ID:???
>>893
誤爆?
895nobodyさん:2007/04/25(水) 19:52:29 ID:???
とぼけるな
ドメスレ荒らしのキチガイ
謝れや!
896nobodyさん:2007/04/25(水) 19:56:06 ID:???
絶対に許さない
必ず見つけ出してやる
897nobodyさん:2007/04/25(水) 20:02:11 ID:???
ムムキチ隠れるな
898nobodyさん:2007/04/25(水) 20:31:24 ID:???
k
899nobodyさん:2007/04/25(水) 21:00:09 ID:IXKwV2TH
質問させてください。
以下のようなPHPスクリプトを作りたいと思ってます。

@PHPで、あるシェルスクリプトを実行させる。
Aシェルスクリプトを実行すると、データテキストが作成される。
Bデータテキストの内容をPHPで取り込み、データの内容によって、
 OK / NG等の判定を行う。

この手順のAで作成されるデータテキストなのですが、
実際には作成されるまでに、20〜30秒ほど時間が掛かります。
直ぐにBを行うと、不完全な状態のデータテキストを読んでしまうのですが、
PHPで『ファイルが生成されるまで待つ』といった命令や関数等はありますでしょうか。
ご助言よろしくお願いいたします。
900nobodyさん:2007/04/25(水) 21:01:11 ID:???
SLEEP 30
901nobodyさん:2007/04/25(水) 21:30:13 ID:???
>>900
サンクスです!
そんな便利な命令があるとは知らなかったです
902nobodyさん:2007/04/25(水) 21:34:24 ID:Hk5iwc7F
>>849-850
レスありがとう〜
不眠続きで今起床しました。

これからやってみます!
903nobodyさん:2007/04/25(水) 21:55:58 ID:???
>>899
Aが完了するまでシェルスクリプト自身がブロックするように、
(シェルスクリプト内でバックグラウンドプロセスを立ち上げないように、)
シェルスクリプトを工夫するほうが簡単確実。
無理ならPHPでsleepとfile_existsをループ。
904nobodyさん:2007/04/25(水) 22:15:02 ID:ooT1ogQP
質問スマソ

PEARのXML_Tree使って
拡張子がphpのXMLファイル作ったんだが

そこからどうやって読み込めばいいのかわからんorz

$xml = new DOMDocument;
$xml->load('collection.php');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);

echo $proc->transformToXML($xml);
905nobodyさん:2007/04/25(水) 22:22:46 ID:ooT1ogQP
何か日本語変な気がする・・・

つまりは拡張子phpのファイルをどうやってxmlに変換するかってことです。
906nobodyさん:2007/04/25(水) 23:31:08 ID:ckD8GJA9
教えていただきたいのですが。
.htaccess
RewriteEngine on
RewriteRule ^/([0-9A-Za-z)]+)\.html$ /index.php?hoge=$1[L]

http://xxx.jp/index.php
<?php
print $_GET['hoge'];
?>

としてブラウザーへ http://xxx.jp/hello.html としても
404が戻ってきます。
どこを確認すればいいでしょうか?
907nobodyさん:2007/04/25(水) 23:42:59 ID:0HmGKMgn
2つのファイルを同時に編集・削除するときその関係性も保証するためにトランザクションみたいな機能ってありませんか?
やっぱり最大限安全な順番を採るしかないんですか?
908nobodyさん:2007/04/25(水) 23:53:02 ID:???
>>904
httpから書けばできると思います、強引で汚いですけど

>>906
confでモジュール読み込んでしてます?
あと[L]の前に半角スペース要りませんでしたっけ

またRewriteRule のfirst argは.htaccessのpathですが
second arg はベースが指定してない場合はdocument root からのpathです
909nobodyさん:2007/04/25(水) 23:56:03 ID:???
> あと[L]の前に半角スペース要りませんでしたっけ
確認した所必要ないですね
910nobodyさん:2007/04/26(木) 00:06:50 ID:???
>>907
http://jp.php.net/manual/ja/ref.sem.php
セマフォ

Windows環境も対応したいなら原始的にロックファイル作って。
911nobodyさん:2007/04/26(木) 00:16:17 ID:???
>>906
404になるとすれば、多分
^/( ←ここ
^( ←こうだろうな
912nobodyさん:2007/04/26(木) 00:29:33 ID:???
ccessって、俺が間違えたから皆使うのか!?
それとも、もともと皆がccessって使ってるのか!?
913nobodyさん:2007/04/26(木) 00:30:47 ID:???
関数を忘れてしまったので質問させてください
文字列を、指定した文字で区切り、配列に分割する
関数の名前は何でしたでしょうか・・・
914nobodyさん:2007/04/26(木) 00:33:30 ID:???
>>912
なんだか知らんが病院紹介しようか?
915nobodyさん:2007/04/26(木) 00:33:54 ID:???
>>913
split
explode
916906:2007/04/26(木) 00:47:15 ID:b54Zcwq0
みなさんありがとうございます!
/ が余計だったようです・・・
詰まってて簡単な事も見逃していたようです。
表示されてわかったのですが、[L]の前には半角スペースは必要でした。
ない場合は、表示された「hello[L]になるようです。

ほんとうに助かりました!
917nobodyさん:2007/04/26(木) 01:19:01 ID:???
>>916
まずはエラーログチェックの癖をつける。
918848:2007/04/26(木) 01:54:55 ID:fEqE9au7
>>850
すみません。
考えてみたのですが、まったく理解できません・・・
もう少し噛み砕いて教えていただけないでしょうか?

0001の部分は0001.phpとしてファイルを作ってあります。
例の0002は現在作成していないファイルということになります。

index.php?hoge=0001 はすでに0001.phpとしてファイルがあるのでそのまま表示
index.php?hoge=0002や中途半端なアドレスの
index.php?hoge=や
index.php
は403 404を表示したいのです。

何度もすみませんがよろしくお願いします。
919nobodyさん:2007/04/26(木) 02:00:58 ID:g6GrkNsN
if($number = "0001"){
include("0001.php");
}else{
header("Location:http://qawsedrftgyhujikol/");
}
920nobodyさん:2007/04/26(木) 02:03:35 ID:???
>>918
すごく噛み砕いてソースの具体例まで出してくれたのが850だと思うが。
理解できないならどこが理解できないか言ってくれないとこっちも全く理解できないんですよ。
921nobodyさん:2007/04/26(木) 02:04:59 ID:???
>>918はelseの存在を知っているのか?
922nobodyさん:2007/04/26(木) 02:13:35 ID:???
>>915
ありがとうございます
923848:2007/04/26(木) 02:25:03 ID:fEqE9au7
みなさんレスありがとうございます。
やってみようとしたところ、鯖の緊急メンテに入ってしまいました。
数時間のメンテらしいのでメンテ明けにやってみます。

924nobodyさん:2007/04/26(木) 02:48:03 ID:???
だからレン鯖で開発するなと何度言えば
925848:2007/04/26(木) 04:34:29 ID:fEqE9au7
自宅でやってみました。
現在index.php には
<?php
$GET_PAGE=$_GET['hoge'];
if(@fopen($GET_PAGE.".php", "r")){
include($GET_PAGE.".php");
}else{
header("HTTP/1.0 404 Not Found", true, 404);
?>
<html>
<head>
<title>404 Not Found</title>
</head>
<body>
<p>404 Not Found</p>
</body>
</html>
<?php
exit;
}
としたところ、
index.php?hoge=0001では正常に
index.php?hoge=0002やindex.php?ho などでは
そのアドレスのままページには「404 Not Found」と書かれたページが表示されるようになりました。

ここでさらに踏み込んで、現在自前でエラードキュメントをphpで作っておいてあるのですが、
index.php?hoge=0002やindex.php?ho の場合にそのエラードキュメントで表示するようには出来ないものでしょうか?
上記htmlの部分へ同じようなhtmlを書けばいいのかもしれませんが、せっかくなのでphpで表示したいのですが。

また上の書き方で何か問題はないでしょうか?fopenしてるので、閉じないといけないかもしれませんしもっとスマートは方法とかありそうですが。
926nobodyさん:2007/04/26(木) 04:51:20 ID:???
ここはお前のサポセンじゃないんだよ
まずは自分で調べるなり考えろ
あとレン鯖で実験するな

> if(@fopen($GET_PAGE.".php", "r")){
このままでも閉じる必要は無い
is_file使えば見やすい

> エラードキュメントで表示するようには出来ないものでしょうか
.htaccess 404
927848:2007/04/26(木) 05:09:41 ID:fEqE9au7
>>926
レスありがとう。
fopenで閉じなくても問題ないと言うことですのでそのままにしておきます。
またis_fileの方がファイルがそうではないかと言う事みたいなので、is_fileに変更しました。

現在の.htaccessでは、
ErrorDocument 401 /library/error/error.php
ErrorDocument 403 /library/error/error.php
ErrorDocument 404 /library/error/error.php
ErrorDocument 500 /library/error/error.php
としていますが、それでも、
index.php?hoge=0002やindex.php?hogeなのでは、
うまくerror.phpが動作してないようです。
928nobodyさん:2007/04/26(木) 06:41:01 ID:???
>>927
}else{
header("HTTP/1.0 404 Not Found", true, 404);
require "/library/error/error.php";
exit;
}

}else{
Location("http://自分のサーバの存在しないURL");
exit;
}
929848:2007/04/26(木) 07:28:15 ID:fEqE9au7
>>928
何度も申し訳ありません。
}else{
header("HTTP/1.0 404 Not Found", true, 404);
require "/library/error/error.php";
exit;
}
を試したところ、200が自前error.phpから戻ってきました。また
Location("http://自分のサーバの存在しないURL");
だと問題なくエラー表示されるのですが、アドレスが変わってしまうで自分がやりたいこととは、
少し外れてしまいます。

あまりスレを消費するのもあれなので、この辺で失礼します。
かなり勉強になりました。
レスを頂いた方ありがとうございました!
930nobodyさん:2007/04/26(木) 10:44:47 ID:???
もうgdgd
931nobodyさん:2007/04/26(木) 12:15:12 ID:MU7hy9Ys
phpを勉強しています。
参考にしている本のサンプルコードに

while($false !== ($entry = $d->$read())) {
(中略)


というコードが出てきました。
これはどういう意味でしょうか?
特に$d->$read()この「->」の意味が分かりません。
どなたかお分かりになるかた、教えてください。
932nobodyさん:2007/04/26(木) 12:20:49 ID:???
           ∧∧
           /⌒ヽ) now loading ...
          i三 ∪      
         〜三 |       
          (/~∪
        三三
      三三
    三三
  三三
三三

933nobodyさん:2007/04/26(木) 12:24:05 ID:???
>>931
点プレに入ってたかもshirenが
アロー演算子でググれ
934nobodyさん:2007/04/26(木) 12:38:43 ID:???
>>931
そういう時は「php 演算子」でぐぐろう
935nobodyさん:2007/04/26(木) 12:48:32 ID:???
どうでもいい雑談だけど
==より===で比較するほうが場合によっては処理が早くなったりするのかね
936nobodyさん:2007/04/26(木) 12:52:50 ID:???
かおそー
937nobodyさん:2007/04/26(木) 12:52:58 ID:???
>>935
場合によってはというより普通に速い。
気にするほどでもないけど。
938nobodyさん:2007/04/26(木) 12:53:39 ID:???
936は誤爆
939931:2007/04/26(木) 13:00:30 ID:MU7hy9Ys
>933,934
レスありがとうございます。
クラス内で使用することがあることは知っていたのですが、
そのサンプルコードの中には1度もクラスが書かれていません。
ぐぐったところグローバル変数にも関係するようなのですが、
筋としてはそちらっぽいです。
もう少し調べます。ありがとうございます。
940nobodyさん:2007/04/26(木) 13:04:16 ID:???
941nobodyさん:2007/04/26(木) 13:05:36 ID:???
おぶじぇくと
942nobodyさん:2007/04/26(木) 13:13:53 ID:???
雑談2
===による厳密な比較ってPHPだけ?
他の言語では==で厳密に比較されるが一般的なのかしら
943nobodyさん:2007/04/26(木) 13:30:51 ID:???
つ型
944nobodyさん:2007/04/26(木) 13:31:30 ID:???
比較されないと思う

945nobodyさん:2007/04/26(木) 13:39:50 ID:???
以前booleanとNumberで===のベンチした時は10%程度速くなった記憶
946nobodyさん:2007/04/26(木) 13:42:22 ID:???
10%とか処理速度が正確に分かるのか?
947nobodyさん:2007/04/26(木) 13:57:49 ID:???
正確かと言われれば正確じゃない
xdebugかmicrotime()使かって10秒程度のループを数回やった記憶
948nobodyさん:2007/04/26(木) 14:02:46 ID:???
雑談に乗じて超初心者レベルな質問が飛び交うのがこのスレの醍醐味ですね。
949nobodyさん:2007/04/26(木) 14:08:33 ID:???
お前みたいに無知だけど口を出さずにはいられない輩もな
950nobodyさん:2007/04/26(木) 14:20:34 ID:???
いやいや私は真面目に回答してますよ。
あまりにレベルの低い回答者のせいで質問者が不憫に思えた時なんか。
あ、雑談という体じゃなくてちゃんとした質問時の話ですよ。
951nobodyさん:2007/04/26(木) 14:22:39 ID:???
うざぃ
952nobodyさん:2007/04/26(木) 14:26:58 ID:???
くだスレだからいいんじゃね?
953nobodyさん:2007/04/26(木) 14:50:00 ID:UlKx/JN4
すいませんXML_Treeについて教えてください。

こんな感じに書いてあるんですがXMLの要素が全部でちゃいます。
どうすれば指定した部分だけ取得できるんでしょうか?
print_rしても配列がいっぱいでてきてさっぱりです。

<?php

require_once'XML_Tree/Tree.php';

$xml_filename = "http://map.simpleapi.net/stationapi?x=139.8025&y=35.6657";

$xml_str = join("",file($xml_filename)); // xml_str にファイルを読み込み

$tree =& new XML_Tree();
$root =& $tree->getTreeFromString($xml_str);

if(XML_Tree::isError($root)) {
//エラー処理
}

echo $tree->get();

?>
954nobodyさん:2007/04/26(木) 15:02:39 ID:???
すみません、質問させてください。
1つのphpがPOSTメソッドを受信するプログラムだとします。
別のphpがPOSTメソッドを送信するプログラムだとします。
この時、<form action>で送信した場合画面が切り替わってしまうのですが、
これを遷移させずにデータを送信する方法は何か有りませんでしょうか…
955nobodyさん:2007/04/26(木) 15:03:04 ID:???
>>954
ID出さない奴に質問する権利はない
956nobodyさん:2007/04/26(木) 15:03:35 ID:???
指定した部分だけ取得ってどこにも指定してないじゃん
957954:2007/04/26(木) 15:05:23 ID:6G3Gma2a
>>955
すみません、忘れていました…
958nobodyさん:2007/04/26(木) 15:09:39 ID:???
>>957
画面切り替えが嫌ならJavaScript使え
って、JavaScript全然知らんがな
959nobodyさん:2007/04/26(木) 15:11:33 ID:UlKx/JN4
>>956
指定の仕方がわからないんです…。

phpspotのサンプルでは
$children = $root->children;
って感じになってるんですが
$childrenをprint_rしても配列がいっぱいで…
960nobodyさん:2007/04/26(木) 15:15:49 ID:???
>>957
socket
961nobodyさん:2007/04/26(木) 15:16:51 ID:???
>>959
子ノード以下のオブジェクトが返ってきてるんじゃないの?
見たい部分をそのまま指定すりゃいいじゃん。
マニュアルは読んだの?
962nobodyさん:2007/04/26(木) 15:31:18 ID:UlKx/JN4
>>961

xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( [0] => xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( ) [content] => [name] => [namespaces] =>
Array ( ) [error] => [use_cdata_section] => [lineno] => 3 ) [1] => xml_tree_node Object ( [attributes] => Array ( ) [children] =>
Array ( [0] => xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( ) [content] =>
[name] => [namespaces] => Array ( ) [error] => [use_cdata_section] => [lineno] => 4 ) [1] => xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( ) [content] => 越中島駅 [name] =>.....

こんな感じに返ってきてるわけですがこれの「越中島駅」を出す場合
$content = $root->content;
print_r($content);

ってやってみたんですが上手くいかず…
マニュアルを読んでもさっぱりなんです。
963nobodyさん:2007/04/26(木) 15:34:18 ID:???
せめて改行マークでも入れてくれよ・・・
964nobodyさん:2007/04/26(木) 15:37:35 ID:UlKx/JN4
>>963
スマソ…これ全部一文です。
965nobodyさん:2007/04/26(木) 15:39:02 ID:???
>>964
お前、ソース見ろ
966nobodyさん:2007/04/26(木) 15:39:11 ID:???
>>962
マニュアル読んでどこが分からなかったの?
967954:2007/04/26(木) 15:43:20 ID:6G3Gma2a
>>960
有難うございます。調べたところ、fsockopenで可能なようです。
ただ、この場合POST値を複数値渡す際の書き方はどうすればいいのでしょう…

http://ml.php.gr.jp/pipermail/php-users/2005-May/026044.html
の、$POST="test_key=test_value";の部分を書き換えれば良いのは分かるのですが…
968nobodyさん:2007/04/26(木) 15:45:36 ID:UlKx/JN4
>>965
これって$content[ ][ ][ ][ ]ってな感じで探ってくってことでしょうか…?

>>966
http://pear.plus-server.net/package.xml.xml-tree.xml-tree.get.html
この辺かと…
全部じゃなくて指定した部分だけを返すって事ができないのでそこで悩んでおります。
969954:2007/04/26(木) 15:51:27 ID:6G3Gma2a
自己解決しました。
普通にtest_key=test_value&test_key2=test_value2という風にやればいいんですね。
970nobodyさん:2007/04/26(木) 15:53:19 ID:8BvigEmE
他サイトのフォームの値を取得することは不可能ですか?

例えばあるサイトのあるフォームの
textの値を取得したいのですが.

宜しくお願い致します。
971nobodyさん:2007/04/26(木) 15:55:59 ID:???
>>968
$root->children[1]->children[1]->content
みたいにアクセスするっぽいけど。

そんな事より、公式に書いてある通りXML_SerializerかPHP5でSimpleXMLとか使ったほうがいいよ。
972nobodyさん:2007/04/26(木) 16:00:29 ID:???
>>968
XMLツリーを取得したらあとは自分で指定するだけ。
PHPの基本的な配列とオブジェクト操作の話。
SimpleXMLやらのサンプルにも載ってる。

>>970
他サイトを読み込んでformのvalueのところ取ってくればok
973nobodyさん:2007/04/26(木) 16:05:14 ID:UlKx/JN4
>>971 >>972
なるほど…こうすれば良かったんですか。
ありがとうございます。

SimpleXMLはサーバーがphp4しか対応してないのでできませんでした、
XML_Serializerをちょっと見てみます。
974nobodyさん:2007/04/26(木) 16:05:47 ID:???
>php4しか対応してないので
>php4しか対応してないので
>php4しか対応してないので
>php4しか対応してないので
>php4しか対応してないので
975nobodyさん:2007/04/26(木) 16:09:20 ID:???
今時どこの糞サーバだ
976nobodyさん:2007/04/26(木) 16:10:17 ID:UlKx/JN4
>>974
…失礼しました。
レンタルなので自分の環境ではphp4しか使えません。
977nobodyさん:2007/04/26(木) 16:15:49 ID:???
今時PHP4なんかやってらんないしサーバ変えたら?
978nobodyさん:2007/04/26(木) 16:16:09 ID:g6GrkNsN
さくら鯖がphp4だからおわってるな
979nobodyさん:2007/04/26(木) 16:16:18 ID:???
>>974
は勘違いしたと見た
980nobodyさん:2007/04/26(木) 16:21:34 ID:UlKx/JN4
>>977
会社で指定されたサーバなので変更ができないんです…。
なんとか使い方わかりました。
ありがとうございました。
981nobodyさん:2007/04/26(木) 16:22:14 ID:???
>>974
ID出さなくて良かったな
982nobodyさん:2007/04/26(木) 16:23:56 ID:???
エンジニアの端くれならサーバが糞だってことちゃんと説明して説得しる
983nobodyさん:2007/04/26(木) 17:27:35 ID:???
そう簡単にバージョンアップってできないもんなの?
それとも単に要望が出てないから放置してるか、ただめんどくさいだけなのか
984nobodyさん:2007/04/26(木) 17:41:28 ID:???
バージョンアップできないことは無いだろうけど、古い方がまだメンテされてるのに
運用中のサーバのソフトのメジャーバージョンをホイホイ上げる管理者も珍しいんじゃないか。
985nobodyさん:2007/04/26(木) 18:00:49 ID:???
運用中のサーバなら、難しいだろうな
バグフィックスならともかく、メジャーバージョンをあげるのは
躊躇するだろう
986nobodyさん:2007/04/26(木) 18:11:51 ID:???
jじゃずっと4のままで大変だね
987nobodyさん:2007/04/26(木) 18:18:16 ID:???
メンテ終了がアナウンスされれば移行するだろ
988nobodyさん:2007/04/26(木) 18:42:09 ID:???
sakuraなら自分でインスコすればいいじゃん
989nobodyさん
>>983
変えるとしても、準備期間で最低でも告知から1ヶ月ぐらいは無理だろうね。
Xreaとかそこら辺の安い鯖借りておけば良いと思うよ。