【PHP】質問スレッドpart31【php】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2005/11/27(日) 00:07:12ID:eBvjdczp【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。
過去スレ、関連リンク、FAQ等>>2-10辺り
0883nobodyさん
2005/12/30(金) 13:24:42ID:0FfWwbS6一応希望通りの動作はしてますが、かなり変ですよね?(;´Д`)
こうしろよみたいなのありましたらご教示よろしくお願いします。
$today = getdate();
if ( $today[year] > $input_year ) { error(); } // 過去はエラー
elseif ( $today[year] < $input_year ) {} // 未来はOK
// 以下同年
elseif ( $today[mon] > $input_month ) { error(); } // 過去はエラー
elseif ( $today[mon] < $input_month ) {} // 未来はOK
// 以下同月
elseif ( $today[mday] > $input_day ) { error(); } // 過去はエラー
// 存在しない日はエラー
if ( !checkdate($input_month, $input_day, $input_year) ) { error(); }
0884nobodyさん
2005/12/30(金) 13:51:27ID:???epoc値(1970/1/1からの秒数)に直して比較すれば一発。
その前に書式はチェックしないといけないけど。
0885nobodyさん
2005/12/30(金) 13:57:28ID:???年/月/日ごとに異なるエラーを出すのでないなら、
まとめてタイムスタンプの大小で現在より過去を判定した方が良いんじゃないか。
タイムスタンプの性質とmktimeの動作を確認して、自分の仕様に適うかどうかだな。
0886nobodyさん
2005/12/30(金) 16:58:33ID:???あと関係ないが連想配列[]内はクォーテーションで囲みましょう。["hoge"]
0887nobodyさん
2005/12/30(金) 18:12:49ID:???それ以外の方法でもあれこれ組み合わせれば結構セキュア
(他の人のスクリプトやデータに干渉しないよう)に
できると思うんだが。
0888nobodyさん
2005/12/30(金) 18:52:17ID:???0889nobodyさん
2005/12/30(金) 20:53:24ID:5CV6IiV6認証部分はどうすればよいのでしょうか?
googleで5時間探したけどわかんね。。
0890nobodyさん
2005/12/30(金) 20:59:33ID:???別に難しく考える必要はなし。
if(date("Ymd") < "{$input_year}{$input_month}{$input_day}"){
echo 'Error!';
exit();
}
※$input_yearは4桁西暦、$input_month $input_dayはあらかじめ2桁に整形済みのこと
0891nobodyさん
2005/12/30(金) 21:05:51ID:???$input_year.$input_month.$input_day){
0893nobodyさん
2005/12/30(金) 21:47:34ID:???$input_monthや$input_dayが一桁だった場合におかしなことになるからsprintf("%04d%02d%02d",ってやらないとまずくない?
>>889
ページってことはHTTPってこと?だったらfsockopenでクッキーとかも送ってやればいいだけ。
HTTPSに関してはOpenSSLを導入する方法があったようななかったような。
あとPearにもHTTPクライアントあるし。もしくはcurl使うとか。
つーかメールだったらIMAP系の関数使ったほうが早いかもね。
0895893
2005/12/30(金) 21:54:30ID:???すまん。ここ読んでなかった。
> ※$input_yearは4桁西暦、$input_month $input_dayはあらかじめ2桁に整形済みのこと
0896nobodyさん
2005/12/30(金) 21:54:46ID:???「あらかじめ整形しておく」などの事前前提は意外とバグを産み易い。
速度的にシビアな場面じゃないのなら安全策を取った方が不慮の事故を防げるかと。
if(date("Ymd") < sprintf("%04d%02d%02d", $input_year, $input_month, $input_day)){
0897nobodyさん
2005/12/30(金) 21:55:17ID:???0898nobodyさん
2005/12/31(土) 00:25:14ID:NCoXT252ttp://www.netmania.jp/cgi/blog/ の#001 を動かそうと思い入れたんですけど
PHPがERRORばかり吐いて動きません。
試しに、無料のレンタル鯖にうpして動かしてみるとすんなり動きました。
鯖の設定がだめなのかPHPのスクリプトがおかしいのか・・・
宜しくお願いします。
レンタル鯖に設置したやつ[未改造]
ttp://freshgreens.jp.land.to/blog/index.php
自鯖のやつ[多少弄った]
ttp://aozoraxp.dip.jp/blog/index.php
PHPのinfo
ttp://aozoraxp.dip.jp/phpinfo.php
0899nobodyさん
2005/12/31(土) 00:33:08ID:???レン鯖においてOKならおまいのローカル環境がおかしいとしか思えないが、
エラー見るに根本的に何かが間違ってるっぽいし改造って何したのとか
わからんから何とも言いようがありません。
0900nobodyさん
2005/12/31(土) 00:36:57ID:???php.iniのerror_reportingの値がでかすぎるかも。
E_NOTICEまで有効にされちゃってる気がする。
0901898
2005/12/31(土) 00:38:53ID:???例えばif ($_SERVER[REQUEST_METHOD] == 'POST') だとエラーでるので
’’を付け加えてif ($_SERVER['REQUEST_METHOD'] == 'POST')にしたとかです。
それ以外は特になにもしてません
0902900
2005/12/31(土) 00:39:58ID:???一般的なデフォルト値はE_ALL & ~E_NOTICEのはずなのでこれで設定してみて。
0904898
2005/12/31(土) 00:44:58ID:???error_reporting = E_ALL; display all errors, warnings and notices
この行をコメントアウト(;)してみました。
するとだいぶblogらしくなってきました。
コメントアウトじゃまずいですかね?
ほかにphp.iniの設定方法あったらご教授ください
0905nobodyさん
2005/12/31(土) 00:48:01ID:???0906898
2005/12/31(土) 00:48:37ID:???error_reporting = E_ALL & ~E_NOTICE の;を外しておきました。
これで一般的なデフォルト値になりましたでしょうか?
0907900
2005/12/31(土) 00:54:41ID:???2039になったからいーんじゃないのかな。
Windows用のphp.iniってE_ALLがデフォルトなんだろうか。
それとも4.4.0以降はE_ALLに変更されたとか?
あとなんか上に1個出てるエラーは設定項目不足みたいね。
csslistの設定が入ってないとエラーになるようだ。
なんかエラーチェックがいいかげんなプログラムだなぁ。
0908898
2005/12/31(土) 00:57:56ID:???まだひとつだけエラーでちゃいますね。
csslistの設定ですか・・・
ちなみにmain.phpの206行目は
// CSSリスト生成
$num = 0;
foreach($conf[csslist] as $list){ ←この行です
$csslist .= "<option value=\"$num\">".$list[1]."</option>";
$num++;
}
なにか対処方法ってありますかね?
0909nobodyさん
2005/12/31(土) 01:04:57ID:???csslistを設定してやるっつーのはダメなの?
blog/conf.phpの116行目
// CSSリスト - 別に設定しなくてもいいような気もします。CSSジャンキー向け。
$conf[csslist] = array(
array("./style.css","基本スタイル"),
array("./style2.css","黒スタイル")
);
の部分でしょ。
ま、「設定しなくてもいいような」と書いといて、設定しなかったらエラーになるのは
そのプログラムがヘタレなせいだと思うけどね。
0910898
2005/12/31(土) 01:11:36ID:???たぶん俺が元々foreach($conf_csslist as $list)ってなっていたやつを
foreach($conf[csslist] as $list)に変えたからだと思いますw
今conf.phpの116行目
// CSSリスト - 別に設定しなくてもいいような気もします。CSSジャンキー向け。
$conf_csslist = array( これを
$conf[csslist] = array( このように[]に変更してやったら
エラーがとれて正常に動作するようになりました。
どうもありがとうございました。
0911nobodyさん
2005/12/31(土) 17:38:32ID:+rnbwxavこの人がPHP5のオブジェクトは参照渡しではないと言っているのですが
本当でしょうか?
0912nobodyさん
2005/12/31(土) 17:44:44ID:???0913nobodyさん
2005/12/31(土) 18:07:13ID:???なんせ、本家Zendのサンプルコードですら修正されてなくて間違ったままになってるくらいw
赤マンモス本でも初版では旧仕様のコードで説明されてたりした。
PHP5でのオブジェクト代入の動きの説明に関してはここなんてどう?
ttp://www.shigeweb.jp/php/project_p/?section=php5oop&page=substitution
> 「$agent_hodenasu = $hodenasu;」の結果、「変数$agent_hodenasu」が、
> PHP4では代入元のオブジェクトのクローン(コピー)になっていたのに、
> PHP5ではリファレンスの様な、でも違う代理人の様なものになったなぁという事を理解できたと思います。
> でも実際はリファレンスです(え?)。「変数$agent_hodenasu」は「変数$hodenasu」のリファレンスですが、
> 完全なリファレンスではないのです。
0914nobodyさん
2005/12/31(土) 18:09:35ID:???(正月にはまだ早いけど)おめでたいですね。
>なお今回紹介する内容は、2003年4月22日時点でCVSに登録されているバージョンに基づいていることをお断りしておく。
>正式リリースまでの間に、言語仕様が若干変更される可能性もないわけではない。
0915nobodyさん
2005/12/31(土) 18:13:15ID:???まあPHPのマニュアルでは「リファレンス」という言葉を一貫して&による参照の意味(=エイリアス)で使っているから、その限りでは「オブジェクトの参照渡しではない」という言い方もできるかもね。
ただ、よく言われるPHP5のオブジェクトの参照渡しってのは、一般に言う値渡しとの対比としての参照渡し(=コピーせずに同じオブジェクトを参照させる)のことでしょ。
0916nobodyさん
2005/12/31(土) 18:13:21ID:???0917nobodyさん
2005/12/31(土) 18:18:16ID:???0918nobodyさん
2005/12/31(土) 18:23:52ID:???0920nobodyさん
2005/12/31(土) 19:49:17ID:???おいらもphp4からphp5に移行する時に、「php4の知識があれば、本とか買わなくてもいけるべ」と、
検索にヒットするページを片っ端から読んでた時に見た記憶があるよ。
まぁ、「嘘を嘘と見抜けないようでは(ry」って感じだね。
0921nobodyさん
2005/12/31(土) 20:52:30ID:???釣サイトに釣ページがあっても・・・え?
0922nobodyさん
2005/12/31(土) 23:32:43ID:???雑な仕事してんじゃねーよということだな。
0923nobodyさん
2005/12/31(土) 23:35:25ID:???0924nobodyさん
2006/01/01(日) 02:31:41ID:???0925nobodyさん
2006/01/01(日) 02:44:21ID:???PHPカンファレンスとかでよく公演してる。
WEB+DBプレス他、技術雑誌の記事でもよく見かけるよ。
0926nobodyさん
2006/01/01(日) 03:09:44ID:???後から他の型を代入することも出来る、一時的なリファレンスなんだ。
まあ後から役割を変えることなんてあんまりないから
リファレンスと考えておいてほとんど問題はないね。
0928nobodyさん
2006/01/01(日) 13:34:01ID:???0929nobodyさん
2006/01/01(日) 14:24:18ID:???PHP関係の情報収集レベルの指標にはなるけど。
0930nobodyさん
2006/01/01(日) 14:34:52ID:???0931nobodyさん
2006/01/01(日) 15:04:24ID:???0932nobodyさん
2006/01/01(日) 15:18:45ID:???書き捨てられたページが検索上位にきただけ。時間関係が逆
とはいえ、先を見越して注意書きが入っているのに
それを無視する人の方がよっぽど雑な事をしている気がするけど
0934nobodyさん
2006/01/01(日) 23:26:36ID:???PHP5の新機能を一足先に(つまりβ仕様)紹介、ってページがヒットしすぎ。
それらを見た人は夢を抱^h^h^h勘違いしちゃうよね。
>>913のリンク先は比較的よく纏まってる方だね。
0935nobodyさん
2006/01/02(月) 01:30:00ID:???正式リリース以降にまとめページを作ってる人があまりいない
(まだ時期尚早な面もあるしね)って状況のせいで、
βの頃の紹介記事の方が被リンク率が高くなっちゃってるんだよね。
それでいつまでもgoogleの検索で上位に留まってしまってる。
しかしそれを書き捨てとか言われても困るよなぁ。他が無いだけじゃん。
むしろ2年半も前の記事にマジ感想でクレーム書いて
> マニュアルだけはしっかりしたものを選ばないとダメだと実感する・・・
とかアホなこと言ってるのは思いっきり書き捨て以外の何物でもないと思うけど。
まずそのマニュアルの出自を確認しれと。
まともに記事の判別もできないやつが選択の必要性を語るなと。
0936nobodyさん
2006/01/02(月) 01:34:47ID:???なんか
> 追記------------------------
とかいうの増えてるのな。
> うちの環境はPHP4でした。PHP5では参照渡しだそうです。参照渡しは不便だヽ(`Д´)ノウワーン
・・・・・・・ただのバカ?PHP4とPHP5の区別もつかない人?
> PHPマニュアルより抜粋
> 例 19-3. オブジェクトの代入
(ry
> 一方でITMediaの記事。
> リスト1 参照渡しによるオブジェクトの代入
(ry
> はっきりしてくれ!!どこをどう参照してるのだ???
こんだけ何度も複数の記事を細かく見比べてて、
未だに元記事が2年半前のβ仕様紹介ということに気付いてないらしい。
> 実験するか。。。。。
> よく考えたらうちの実験環境はPHP4でしたヽ(`Д´)ノウワーン
いやもう・・・おまえPHP触るのやめた方がいいよ。
つーか誤解を世に撒き散らすのやめてくれよ、頼むから。
0937nobodyさん
2006/01/02(月) 01:51:28ID:???0938nobodyさん
2006/01/02(月) 01:52:56ID:???0939nobodyさん
2006/01/02(月) 01:59:02ID:???> 参照渡しが有り得ない。変数がスコープやクラスをまたいで存在することなる。
とか書いちゃったからな。
ありえないのはお前の脳みそw
0940nobodyさん
2006/01/02(月) 02:16:35ID:???ttp://ameblo.jp/takuya/entry-10007596169.html
> 注目すべきは
> var_dump(null == false) = bool(true)
> null と false の比較はtrueを返す。
当たり前だ。
> var_dump(null === false) = bool(false)
> 厳密に型を指定して比較しないとダメ。
当たり前だ。
> PHPがオブジェクト指向言語なんて書いてる本があれば捨てるべきだと思いました。
> 基本部分がオブジェクトじゃない。こんなものがオブジェクト指向言語であるわけがない。
当たり前だ。確かにそんな変な本があるなら捨ててもいいだろう。
しかし、存在しない本をでっちあげて既知の自説を力説するこいつの頭って一体w
> 付け加えるとしたら
> print( 'bool false = ');
> echo false;
> すると
> bool false =
> falseという文字列すら返しません。
> trueは文字列として返ってくる。なんででしょう?
おまえはオブジェクト指向の前にstringとintegerという
コンピュータ概論の基礎から勉強し直せ。
0941nobodyさん
2006/01/02(月) 03:37:30ID:???うっかりさんはブログを書かないに越したことはないと。
0942nobodyさん
2006/01/02(月) 04:05:17ID:???0943nobodyさん
2006/01/02(月) 10:02:37ID:???って作者さんも2ch経由のアクセスが増えてドキドキしてるかもしれんが。
0944nobodyさん
2006/01/02(月) 11:44:55ID:???0945nobodyさん
2006/01/02(月) 13:13:33ID:???0946nobodyさん
2006/01/02(月) 16:59:41ID:???0947nobodyさん
2006/01/02(月) 18:11:42ID:???0948nobodyさん
2006/01/02(月) 19:01:22ID:???見たら記事が消されてましたね。
0949nobodyさん
2006/01/02(月) 19:07:18ID:???0950nobodyさん
2006/01/02(月) 19:48:51ID:???随分軟弱な人だな。
0951nobodyさん
2006/01/02(月) 20:10:27ID:???間違いがあったら追記するなり、その部分だけ修正したらええのに。
0952nobodyさん
2006/01/02(月) 20:20:44ID:???0953nobodyさん
2006/01/02(月) 22:59:11ID:???無駄死にじゃないよ。
おまいらももうちょっと優しく。
0954nobodyさん
2006/01/02(月) 23:25:16ID:???blogの訂正ついでにリファレンス話をまとめて掲載してくれたらいい感じだったのになぁ。
blogのカテゴリメニューの傍にある写真を見るのが嫌でちゃんと見てなかったんだけど
HTML_Quickformあたりの話も書いてなかったっけ?
きちんとした内容だったのならもったいないなぁ。
2ch始めて結構経つけど、未だにグロ画像に慣れないや・・・
0955nobodyさん
2006/01/02(月) 23:33:59ID:???0957911
2006/01/03(火) 02:43:11ID:0Izq+jiFPHP5のオブジェクト指向がさっぱり理解出来ず苦しんでいました。
もともとはディープコピーで、値渡しだったものを、
パフォーマンス向上のためと、ああいう仕様になった。のではないでしょうか。
いろいろお騒がせしてすいませんでした。
オブジェクトの参照渡しについてに理解していることを書きます。
間違がありましたらご指導お願いします。m(__)m
0960nobodyさん
2006/01/03(火) 02:57:09ID:???がんがれ。
昨日(1/2)のエントリーなんか興味深く見てたので勿体無いと思ってた。
ま、無理せずマターリ更新してよ。
0961911
2006/01/03(火) 11:09:29ID:0Izq+jiF本人です。ブログにそのまんま書きました。
0962nobodyさん
2006/01/03(火) 13:15:51ID:???ちょっと読んだけどさ、根本的にオブジェクト指向っつうのを理解してないと思うよ。
設計の方法論であって、ある実装を指して言う話じゃないよ。
別にJava使って、(オブジェクト指向では無い)構造化プログラミング手法でも書けるし。
C(C++じゃ無くて)で、オブジェクト指向手法で設計する事もできる。
JavaScriptと、Javaを同じオブジェクト指向言語と括るのは違和感あるけど、(動静的オブジェクト指向の違い)
PHPと、Javaなら、別に違和感無いな。
個人的にPHPとJavaの違いは、”ちゃっちゃ”とやるか、”きっちり”やるか、くらいの差だと思ってるけど。
0963nobodyさん
2006/01/03(火) 13:26:06ID:???ここで名無しで叩くようなことじゃないだろ
0964nobodyさん
2006/01/03(火) 13:55:18ID:???「オブジェクト指向かどうか」は設計の方法論かもしれんが、「オブジェクト指向言語かどうか」は処理系の仕様。
とか言ってみるとどう反論するのかな?
Javaはオブジェクト指向言語。PHPはオブジェクト指向言語ではないが、オブジェクト指向をサポートしている。
その違いに違和感うんぬんはおまいの主観だな。
なのでブログの人の
> そんな理由でJavaとほぼ同じオブジェクト指向言語だと解説してる本がチョット許せなかった。
って部分には俺は同意。
そんな本は捨てるべきだ罠。
0966nobodyさん
2006/01/03(火) 14:00:44ID:???PHPのように後漬けでオブジェクト指向風に使おうとする言語を、
比較すること自体が間違い。
0967nobodyさん
2006/01/03(火) 14:03:14ID:???0968nobodyさん
2006/01/03(火) 14:48:27ID:GNwZD414使うのが吉?
Apache2+PHP5+MySQL5
0969911
2006/01/03(火) 14:57:39ID:0Izq+jiF>962
ちゃんと読んだ?俺は
「よく考えてみると(中略)オブジェクト指向じゃなくてJavaの言語仕様ですよね。」
と書いた。つまりそういうことなので、間違ってたのは俺の方ですしすいません。
>966
私もそう思います。
オブジェクト指向だからと言っても
入門系書籍に「Javaとほぼ同等」と書かれるとたまに違和感がある。のです。
コンパイラの最適化も無いわけですし。どこまでどう同等かを書くべきかと。そんな感じ
「オブジェクト指向言語」と「オブジェクト指向サポート」の差って大きいんじゃないでしょうか?
0971nobodyさん
2006/01/03(火) 15:48:24ID:???0972nobodyさん
2006/01/03(火) 15:51:02ID:???0973nobodyさん
2006/01/03(火) 15:54:35ID:???0975nobodyさん
2006/01/03(火) 15:57:13ID:???0976nobodyさん
2006/01/03(火) 15:57:58ID:???0979nobodyさん
2006/01/03(火) 16:00:15ID:gu9NWppsしょうがねーな。暇なので遊んでやるか。
0980nobodyさん
2006/01/03(火) 16:00:30ID:???いまいちよくわからんのだが、別に争うつもりもないよ。
要は、”許せない”とか言う教条的な発想じゃ疲れるだろって思っただけで…
結局、使う人によってどうにでもなっちゃう、しちゃうって話。
>>969
うん、そこを読んだから、書いたんだよ。
オブジェクト指向ってのが”何”か、ということをきちんと理解していれば、そもそも間違えようがないから。
レス数が950を超えています。1000を超えると書き込みができなくなります。