【PHP】下らねぇ質問はここに書き込みやがれ 29
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/09/17(日) 04:26:39ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0784nobodyさん
2006/10/01(日) 16:16:28ID:???ローカルでCLIなPHPスクリプト動かして
対象ファイル読み込んで正規表現で
<script.*?</script>を削除して保存。
0785nobodyさん
2006/10/01(日) 16:21:39ID:F96v0AKSおお、直りました
ありがとうございます
教えてもらっておいてなんですけど正確には
setlocale (LC_ALL, 'Japanese_Japan.20932');
でした。
シングル、もしくはダブルクオーテーションで囲まないと駄目でした。
ウィンドウズでEUCJPの時はこうみたいですね。
0786nobodyさん
2006/10/01(日) 16:31:01ID:???foreach ((array) glob('*.html') as $file) {
$contents = file_get_contents($file);
$contents = preg_replace('|<script.*?</script>|is', '', $contents);
file_put_contents($file, $contents);
}
phpって便利ね。
0788nobodyさん
2006/10/01(日) 17:19:26ID:U0I6sUmvempty($_POST["name"])と!isset($_POST["name"])は同じですか?
なんかemptyを使うとうまくいくのですが、!issetだと動かないんですよね。
0789nobodyさん
2006/10/01(日) 17:34:06ID:???0790nobodyさん
2006/10/01(日) 17:44:02ID:???empty … もし、空ならば
isset … もし、変数がセットされていないならば
$a = "";
だと、変数はセットされていないが、空だという状況になる。
0791790
2006/10/01(日) 17:44:39ID:???isset … もし、変数がセットされて「いる」ならば
否定形と肯定形の関数があるってのは紛らわしすぎるな
0793nobodyさん
2006/10/01(日) 17:49:25ID:???> $a = "";
>
> だと、変数はセットされていないが、空だという状況になる。
変数はセットされているが空、でしょ。
0795nobodyさん
2006/10/01(日) 17:52:19ID:???0797nobodyさん
2006/10/01(日) 18:25:04ID:???>フォームが空でも空文字列で渡ってくる。
nameだからテキストフィールドだと思うけど、たとえばチェックボックスは
チェックしてないと渡ってこないよ。
0798nobodyさん
2006/10/01(日) 18:41:49ID:???余計なお節介かもだけどタグに囲まれてない部分のスクリプトもケアしような
onmouseoverとかhref="javascript:〜"とかとか
0799782
2006/10/01(日) 19:03:01ID:???>>783
いや…ちょ……
>>784>>786>>798
ありがとうございます。
しかし、たとえば極端な例ですが次のような場合に変になってしまって困っています。
<script>for (var i = 0; i < 5; i++) { /* </script> */ document.write("</script>") }</script>
こういうscriptタグが含まれた場合にも上手く削除できるような方法を探しています。
何か良い方法はないでしょうか?
0801nobodyさん
2006/10/01(日) 19:25:15ID:???2.// から行末までと、/*〜*/ を削除
0802nobodyさん
2006/10/01(日) 19:33:15ID:???それよりもまず、そもそもなぜそんなことがしたいのか理由を説明してくれ。
それによって答え方も変わってくる。
0803nobodyさん
2006/10/01(日) 19:44:29ID:???0804nobodyさん
2006/10/01(日) 20:02:42ID:???0805nobodyさん
2006/10/01(日) 20:06:15ID:???できるけどやらないに越したことはない。
これ、つい最近も出た質問だったけど、今日は気分がいいので説明しとく。
function hoge() {
function foo() {
・・・
}
}
と定義すると、hoge();を2回呼び出したときに、fooを2回目に定義することになり、エラーが出る。
if (function_exists('foo'))でチェックして定義すればよいのだが、どうせグローバル空間に名前が追加されるので、関数の中に関数を定義することには
メ リ ッ ト が 何 一 つ な い
と言っても過言ではない。
0806nobodyさん
2006/10/01(日) 20:18:46ID:???http://www.php.net/manual/ja/language.functions.php
これを見た感じだと、
function makehoge($hoge) {
if ($hoge == $fuga) {
function hoge() {
// ....
}
} else {
function hoge() {
//
}
}
}
みたいなことができたりするんだろうか?
・・・ってなくてもいいかな、この機能
0809nobodyさん
2006/10/01(日) 20:58:31ID:???できることには間違いはないと思うけど。
それより、マニュアルも読まないで、逆ギレするのはやめたほうがいい!
0810nobodyさん
2006/10/01(日) 21:10:08ID:???0811nobodyさん
2006/10/01(日) 21:14:41ID:???それが質問する側の態度か、ボケが。氏にさらせ!
っていうか質問するならまずIDを表示しろ。
ルールを守れチンカス野郎。
0812nobodyさん
2006/10/01(日) 21:23:26ID:???0813nobodyさん
2006/10/01(日) 21:36:25ID:???設定によって何か切り替えたいとき、関数の中で場合わけしなくて済むっていう利点はあるな。
たとえば俺は、DBがMySQLかpostgresqlかで関数の定義を分けるのに使った。
0815nobodyさん
2006/10/01(日) 22:22:17ID:???「自分はできる」って勘違いしちゃってるよ。ここもほぼ初心者板なんだからさ。
>>811
ここは2chなんだからさ、態度が悪いのは仕方ないでしょ。実際回答する側だって態度悪いこと多いんだし。
0816nobodyさん
2006/10/01(日) 22:46:27ID:???2006ねん10がつ1にち あめ
つかれてるひとへこれあげるね
http://www.muzie.co.jp/cgi-bin/genre.cgi?id=classic&page=1&sort=m
0817nobodyさん
2006/10/01(日) 23:17:02ID:???PHPより優れたCGIってありますか?
0818nobodyさん
2006/10/01(日) 23:22:04ID:uNLBS1eMclass Hoge extends Mage extends Moge
{}
みたいなことがしたいんです。
0819nobodyさん
2006/10/01(日) 23:26:05ID:???class Mage extends Moge
{
}
class Hoge extends Mage
{
}
0821nobodyさん
2006/10/02(月) 00:34:33ID:???0822nobodyさん
2006/10/02(月) 00:51:35ID:???0823nobodyさん
2006/10/02(月) 02:45:38ID:???対象サーバの管理者がログとか提出しない限り、
そんなの計測しようがないと思うんだが・・・。
(※PHPと関係ない話題だけど)
0824nobodyさん
2006/10/02(月) 02:55:17ID:???「Alexa スパイウェア」でぐぐってみw
結論から言えばブラウザにスパイウェアをいれて、閲覧履歴をAlexaに送信して
人気度を計測してる
0825nobodyさん
2006/10/02(月) 03:50:02ID:???俺はalexaツールバーは使ってないし、
スパイウェア対策ソフトも入れてるから、あんまり関係ないな。
っていうかそういう人がほとんどだろうから、
Alexaのランキングってあんまりアテにならないな。
「セキュリティ意識の薄いド素人のネット利用傾向」は分かるだろうけどwww
0826nobodyさん
2006/10/02(月) 03:54:08ID:???ユーザーに黙って、こっそりAlexaのスパイウェアをIEに混合してたとは。
俺はIEのインストール時に、「スパイウェアが含まれています」なんて
注意書きを見た覚えはないぞ!!
これ、ある意味で詐欺じゃねぇの?
0828nobodyさん
2006/10/02(月) 04:27:43ID:???利用規約とプライバシーについてを「全文」読みました?w
実際読む人なんて1000人に1人もいないだろうけどねぇ
0829nobodyさん
2006/10/02(月) 04:46:48ID:???理論的には、文章を無駄に何百倍にも薄めて
都合の悪い規約を発見されないようにすることも可能なわけだし。
A4用紙1枚程度に収まるような、一目でわかる「要約版」を義務化してほしいもんだ。
0830nobodyさん
2006/10/02(月) 05:01:18ID:???なるほど、もっともな意見だな。
ただ、現行では「利用規約が読めないor同意できないのであれば使わなければいい」という話に持っていかれてしまうので、まだまだ社会全体の精神面での改革が必要かもしれない。
0831nobodyさん
2006/10/02(月) 07:10:22ID:???0834nobodyさん
2006/10/02(月) 11:48:53ID:???おかないと、すぐに裁判おこして金を取ろうとする阿呆が出る。
0836nobodyさん
2006/10/02(月) 12:47:14ID:???2006.10.02みたいな感じにテキストで表示させたいのです。
0838837
2006/10/02(月) 13:39:52ID:???<?php
$date = date("Y.m.d");
echo $date;
?>
0839nobodyさん
2006/10/02(月) 13:40:42ID:???何百とDLされたけど、連絡してきたのはたった2人。
って話だったような。
記事読んだのが結構前だから、元記事探そうと検索したけど見付からなくてスマソ
0840nobodyさん
2006/10/02(月) 13:55:07ID:???実際はもっといたんじゃないかね?
俺なら賞金くれるなんていっても連絡しないよ。
めんどくさいし、どうせネタだろ?って思っておしまいだな。
0841nobodyさん
2006/10/02(月) 15:01:57ID:L7olNnvKで?の後の値が取れないんですけど
phpのバージョンとか関係ありますか?
どんなきっかけでもいいので原因分かる方
お願いします。
0842nobodyさん
2006/10/02(月) 15:08:48ID:???$HTTP_SERVER_VARS
どうも。
0844nobodyさん
2006/10/02(月) 15:55:02ID:???ここはアメリカじゃないぜ!
・・・って言いたいところだけど、最近は日本でもDQNな訴えを
起こすバカが増えてきたからなぁ。
世間的に「セクハラ」とかいう言葉が浸透しだした90年代中頃から、
だんだんおかしくなってきてる気がする。
0845nobodyさん
2006/10/02(月) 16:10:57ID:???実際のところはお役所なり弁護士なり警察なりの指導を受けると、
むしろ「膨大な長さの利用規約でなければいけない」というのが事実。
うちの会社のも利用規約も日に日に太る一方なんですけどorz
要約なんてしたらどうとでも取れる曖昧な表現ばかりになるから
利用規約としては全く通じないのよ。
0846nobodyさん
2006/10/02(月) 16:44:55ID:???「要約」ってのは、もちろん「本来の膨大な規約」があったうえでの話だよ。
要約を用意しておいて、あくまでも「詳しくは本文を見てね」とすれば良い。
0847nobodyさん
2006/10/02(月) 16:45:44ID:???スレ違いスマソ。
0848nobodyさん
2006/10/02(月) 17:10:41ID:???0849nobodyさん
2006/10/02(月) 18:02:13ID:???マクドナルドで、ホットコーヒー飲んだら熱すぎて火傷したから金払え!
って訴えてマクドナルドから金を取ったバカがいるらしいからなww
0850nobodyさん
2006/10/02(月) 18:22:10ID:UQwx9m4d$bangou = 0;
なんちゃらなんちゃらの処理
$bangou = $bangou++;
?>
次表示するときに$bangouの値を保持したいのだけど、これは別にtxtファイルなど使わないとできないですか?
0852nobodyさん
2006/10/02(月) 18:29:23ID:UQwx9m4dどうもありがとうございました。 またわからなかったら聞きに来るのでヒントをいただきたいです……
sesseion_start();
$_SESSION["hoge"] = $bangou;
0854nobodyさん
2006/10/02(月) 19:10:40ID:???は
$bangou++;
と同じ
0855nobodyさん
2006/10/02(月) 21:29:42ID:???spec みたら 5.1.2 のパッケージのに pear ってないです。
それなのに、Requires: file >= 4.0, php-pear になっています。
バージョンが 4.0 以上ならば依存関係なしでいいのでしょうか。
0857nobodyさん
2006/10/02(月) 22:37:49ID:???>>849
ドライブスルーで買ったコーヒーひざにこぼして火傷して損害賠償請求
ってのはあった。
マックのコーヒーは他のチェーン店よりも熱い(85℃くらい)ってのが
言い分で数百万$の請求だったと思う。
日本は請求金額に応じて印紙税がかかるとか、判例を作りたくない裁判官
に和解を勧められて1桁少ない額で落ち着く事が多いとか、そういう
違いがあったと思うなり。
0858nobodyさん
2006/10/02(月) 23:42:30ID:???日本でも、最終的には店側がマニュアル変更するという条件で和解が成立したけど、
ファミレスでお子様ランチのスープが熱くて、飲んだ子供がやけどしたから
48万円の賠償を請求した訴訟とか実際にあるよねw
(で、店が「熱いので注意してください」と声をかけるのをマニュアル化したことで和解)
0860nobodyさん
2006/10/02(月) 23:49:25ID:???食べています。(実話)
0861nobodyさん
2006/10/02(月) 23:49:43ID:???被告側の反論
> 被告側は「原因は一気に飲もうとしたため。店では毎月八百六十食の注文があるが事故は他にない」と反論。
> 「お客さまに提供する時の温度は七七度で最もおいしく、札幌ラーメンのスープも七八度が一般的」としている。
実際に熱いのが飲めるか飲めないかは子供によりけりなのに、
最初からまずくして提供するのも問題じゃないか?
別に常識外れの温度にしてるわけじゃないんだし。
0862nobodyさん
2006/10/03(火) 00:32:01ID:???0863nobodyさん
2006/10/03(火) 02:05:48ID:???は!?
$bangou = $bangou++;
は
$bangou = $bangou;
と同じ。(つまり何も変わらない)
$bangou++;
と同じになるのは
$bangou = ++$bangou;
だぞ。
0864nobodyさん
2006/10/03(火) 02:34:39ID:S6+L6oiN0867nobodyさん
2006/10/03(火) 04:59:44ID:???0868nobodyさん
2006/10/03(火) 05:11:57ID:???i=i++;/*これは動作未定義*/
C99以降の話なら知らん。
0869nobodyさん
2006/10/03(火) 07:05:37ID:???以前どこかのメーリングリストか掲示板で話題になったのを思い出した(Cだけど)。
結果は未定義ということで実際の動作も処理系で違ったんだったっけ。
<?php
$a = 2;
$a = $a++;
echo $a;
?>
結果は"2"だった
0870nobodyさん
2006/10/03(火) 07:12:49ID:???int main(void)
{
int i = 2;
i = i++;
printf("%d",i);
return 0;
}
VC++6では3になった
0871nobodyさん
2006/10/03(火) 07:22:47ID:???って解釈次第ではどちらとも取れるんだよね
0872nobodyさん
2006/10/03(火) 07:32:26ID:???式の結果として何が返るかは、オペレータの定義とは別、じゃないかな?
0873nobodyさん
2006/10/03(火) 08:34:24ID:???>>870
うちにもMS-C v6あるんで追加でやってみた。
#include <stdio.h>
int main(void)
{
int i, j, k;
i = 2; i = i ++; printf("%d", i); //結果は3
i = 2; j = i ++; printf("%d", j); //結果は2
}
なんか原理が理解不能な結果だなw なんだこれ??
PHPのは非常に素直な結果だと思える…
0876nobodyさん
2006/10/03(火) 10:24:08ID:???そのまま代入するのはやめましょうってことだな
0877nobodyさん
2006/10/03(火) 10:30:37ID:???0878nobodyさん
2006/10/03(火) 12:38:46ID:???本題と何ら関係がないが k も使ってあげてください…
0879nobodyさん
2006/10/03(火) 13:39:07ID:???$i = $i + 1;
だろうww
0880nobodyさん
2006/10/03(火) 13:43:52ID:???0881nobodyさん
2006/10/03(火) 13:44:29ID:???0883nobodyさん
2006/10/03(火) 14:12:17ID:???■ このスレッドは過去ログ倉庫に格納されています