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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/04/12(木) 16:54:47ID:???
まず読め→【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カテゴリ)の各スレで
0752nobodyさん2007/04/24(火) 00:35:19ID:eGs+hfXK
どうやら自己解決できました。
お手数かけました。ありがとうございます。
0753nobodyさん2007/04/24(火) 00:44:36ID:???
自己解決したらそれ書けよ
0754nobodyさん2007/04/24(火) 00:47:09ID:???
phpはオブジェクトのメソッド呼び出しに->使うんですか
気持ち悪いんですけど。そんなところまでperl真似なくて
いいと思うんですけど。
0755nobodyさん2007/04/24(火) 00:51:31ID:???
::のほが気持ち悪い
0756nobodyさん2007/04/24(火) 00:53:19ID:???
気持ち悪いならPHPつかなけりゃいいだけの話
他にもたくさんwebで使えるいい言語はあるぜ
0757nobodyさん2007/04/24(火) 00:57:16ID:???
アロー演算子ってPerlとPHPにしか無いの?
0758nobodyさん2007/04/24(火) 00:59:10ID:???
>>757
C/C++でもある。
0759nobodyさん2007/04/24(火) 01:01:07ID:???
あとPHPの$記号って何か意味あるんですか。
変数の前に$記号しかないなら、無くても同じだと思うんですが。
$記号打とうとして#と打ち間違えたりして、毎回いらいらするんですが。
0760nobodyさん2007/04/24(火) 01:02:35ID:???
>>759
是非英語配列をお勧めするのだ
0761nobodyさん2007/04/24(火) 01:03:42ID:???
PHPを捨ててCかJavaへ逝きなさい
0762nobodyさん2007/04/24(火) 01:03:47ID:???
$がつけば変数ってことでたとえば

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

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

あと訂正

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

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

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

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



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

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

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

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

>>801
わらた
08077972007/04/24(火) 17:58:01ID:???
作ったのは間違いで参考元のを書き直しただけでした
>>803俺も何やってるのかさっぱりわからん
0808nobodyさん2007/04/24(火) 18:27:05ID:???
おっきワロスwwwwwwwwww
0809nobodyさん2007/04/24(火) 18:33:05ID:???
おっきのソースがないぞ
0810虚弱PHP2007/04/24(火) 18:45:46ID:???
>>806
うむむ。そうかぁ。
save_handlerがmmだと切れるって話があったような気がするんだけど、
今回はfilesみたいだしね。
08116032007/04/24(火) 19:25:37ID: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 以外でブラウザ別の動作に悩まされるとは思わなかった
0812nobodyさん2007/04/24(火) 19:37:08ID:???
おっきのソースください
0813虚弱PHP2007/04/24(火) 19:55:52ID:???
>>811
ご苦労様。
検証は参考になりました。なるほど。
0814nobodyさん2007/04/24(火) 22:36:23ID:DXOCGV6O
質問させてください

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


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

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

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

こういう、あまり変動しないデータを読み込んで表示させる場合、
どういう風なソースを書けばいいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています