【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カテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0757nobodyさん
2006/09/29(金) 20:18:43ID:???英語でどこかに通知すればいいのかな?
0758nobodyさん
2006/09/29(金) 20:38:19ID:???var_dump($a);
var_dump(file_exists($a));
array(1) { [0]=> string(25) "C:/WINDOWS/TEMP/phpCA.tmp" }
bool(false)
重ね重ねありがとうございます!がやっぱ読み取れないっす・・
申し訳なさと焦りで心が折れそうです
>>755
日本語のとこしか読んだことありません 汗
0759nobodyさん
2006/09/29(金) 21:03:42ID:kqk1O6yRURLに http://〜/index.php?2006
のように ?a=1&b=2 などとなっていないのを見かけるのですが、
この場合どうやって'2006'を取得できるのでしょうか?
取得したい変数がひとつの時にシンプルでいいな、と思っています
よろしくお願いいたします
0760nobodyさん
2006/09/29(金) 21:06:10ID:???$_SERVER['QUERY_STRING']で取れない?
0761nobodyさん
2006/09/29(金) 21:10:28ID:???file_existsがfalseになるってのは、
そもそも、そのファイルは存在しているのだろうかって感じだね。
なにがおこってるんだろ。
WindowsのpHPはつかったことないけど、俺なら
まず、そのファイルが存在するのか、
あと、サーバーがWindows2000みたいだけど、XPではどうか、
Linuxとか(レン鯖とかなんでもいいけど)では、同じスクリプトが動くか、
などを見てみるかな。
0764nobodyさん
2006/09/29(金) 21:28:09ID:???ここを良く見ろ
> ["tmp_name"]=> array(1) { [0]=> string(25) "C:\WINDOWS\TEMP\php81.tmp" }
ファイル名が入ってるのは$_FILES['hoge']['tmp_name'][0]だ
0765nobodyさん
2006/09/29(金) 23:50:44ID:???配列で連結しすぎると分かりにくくなるし。
A1−−B1
−−B2
−−B3ーーC1
−−C2
−−C3
A2−−B1
−−B2
−−B3
たとえばこんな感じの。
0766nobodyさん
2006/09/29(金) 23:57:32ID:???0767nobodyさん
2006/09/30(土) 01:01:05ID:???0 => array(null),
1 => array(0),
2 => array(1)
)
で3階層おpk
0768nobodyさん
2006/09/30(土) 12:42:07ID:???while ($data[$i] = $result->fetchRow()) {
$i++;
}
って意味のある文なんでしょうか?
$data[$i] = $result->fetchRow()って条件式で
$data[$i] に値を代入していくわけではないですよね??
ttp://ethna.jp/ethna-document-dev_guide-db.html
$sql = "SELECT id FROM test";
$result =& $db->query($sql);
$i = 0;
while ($data[$i] = $result->fetchRow()) {
$i++;
}
0770nobodyさん
2006/09/30(土) 12:59:44ID:???データを取り出して、格納したデータを条件式で比較して
データが存在すればまた繰り返すってやつ。
それ最後に無駄なデータがはいっちゃうんだよね。
while ($buf = $result->fetchRow()) {
$data[] = $buf;
}
こっちのほうがいいよ。
0771nobodyさん
2006/09/30(土) 21:25:10ID:???0772nobodyさん
2006/10/01(日) 02:27:44ID:F96v0AKS<?php
setlocale (LC_ALL, 'jpn');
print(strftime("%Y年%b月%d日"));
print(strftime("%A"));
?>
上の例だと月までは表示されるのですがそれ以降が文字化けします。
曜日もめちゃくちゃです。
phpiniの設定は
default_charset = EUC-JP
magic_quotes_gpc = Off
output_buffering = Off
mbstring.language = Japanese
mbstring.encoding_translation = On
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.internal_encoding = EUC-JP
mbstring.detect_order = auto
mbstring.substitute_character = none
phpファイルはEUC-JPで保存。
文字列自体を
print("日曜日");
とかすると問題なく出ます。
phpiniの設定など、いろいろな組み合わせを試してみましたが解決しませんでした。
phpは5.14です。
お願いいたします。
0773nobodyさん
2006/10/01(日) 03:21:35ID:???次のコードで今日の日付と曜日は出力することができると思います。
//今日の日付
print(sprintf('%s年%s月%s日', date('Y'), date('m'), date('d')));
//曜日
$week = array('日', '月', '火', '水', '木', '金', '土');
print($week[date('w')] . '曜日');
もっとスマートなやり方があるかもしれませんが。
0774nobodyさん
2006/10/01(日) 03:47:33ID:???0775772
2006/10/01(日) 12:36:31ID:F96v0AKSなるほどその方法だと出ますね
strftimeのマニュアルに
「注意 (上記の)全ての変換指定子が使用するCライブラリでサポートされてい ない可能性があります。この場合、PHPの strftime()で該当する変換指定子はサポートされ ません。」
こんな記述がありました。
これでしょうか?文字化けなので微妙に違う気もするけど。
Smartyを使ってるんで、プラグイン作るかなあ。
日付は2006/10/01とか2006-10-01でもいいし、
{$data|date_format:"%b"}月{$data|date_format:"%d"}日
とできるけど、曜日が英語表記だとなんだし…
>>774
ごめんなさい。書き忘れましたがwindowsでテストしてるんです。
その書き方はLinuxの書き方でしょうか?
私の環境だと
setlocale(LC_ALL, 'jpn' );
以外は日本語にセットされないみたいです。
setlocale(LC_ALL,'jpn.eucJP');
も試してみましたが曜日が英語で表示されるので効いていないみたい。
ちなみにPHP5.16にしてみましたが同じでした。
0776nobodyさん
2006/10/01(日) 13:55:05ID:U0I6sUmv*.htmlと*.phpで数字で見て負荷は変わりますか?
0777nobodyさん
2006/10/01(日) 13:57:34ID:???0778nobodyさん
2006/10/01(日) 14:04:14ID:???0779nobodyさん
2006/10/01(日) 14:13:08ID:U0I6sUmv$パスワード=ぱすわーど;
$なまえ=ぎこねこ;
if($ぱすわーど==$_post[省略]&&$なまえ==$_post[省略]){
echo"ログインしました";
} else {
echo"不正なアクセスです。";
}
というコードをphpファイルにうめてアクセス制限を行いたいのですが、
BASIC認証と比べて、phpファイルに直接埋め込むこのやり方はどちらが安全でしょうか?
また、このやりかたでパスワードやなまえがもれるでしょうか?
0780nobodyさん
2006/10/01(日) 14:18:45ID:???setlocate(LC_ALL,Japanese_Japan.20932)
0782nobodyさん
2006/10/01(日) 15:52:43ID:???0783nobodyさん
2006/10/01(日) 16:08:29ID:???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 以上ならば依存関係なしでいいのでしょうか。
■ このスレッドは過去ログ倉庫に格納されています