【PHP】下らねぇ質問はここに書き込みやがれ 34
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/12/08(金) 04:22:54ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc8.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc8.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0396nobodyさん
2006/12/12(火) 11:00:18ID:???お前こそ>>1も読まずに何をほざいてるの?お前みたいな馬鹿がいるから
>>1も、マニュアルも読まない馬鹿が増えるんだよ。
0398nobodyさん
2006/12/12(火) 11:07:45ID:???0399nobodyさん
2006/12/12(火) 11:14:14ID:???形勢不利と見るや責任転嫁ですか?
分かった分かった。無理すんな。
くだ質スレでケチつけるしかないほど普段の生活で抑圧されてるんだな。
でも次からは雑談スレやチラ裏でやれ。
0400nobodyさん
2006/12/12(火) 12:08:06ID:???0402nobodyさん
2006/12/12(火) 13:00:44ID:???なんかおかしいならとりあえずエラー出そうよ
$stmt2 = $db->prepare("INSERT IGNORE fugatable (fuga) VALUES (?);");
if (!$stmt2) {
var_dump($db->errorInfo());
exit;
}
こんな感じでいける
$db = new PDO("mysql:host=localhost;dbname=test", 'user', 'pw');
$rows = $db->query("SELECT * FROM hogetable")->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row) {
$stmt = $db->prepare("INSERT IGNORE fugatable (fuga) VALUES (?);");
$stmt->execute(array($row["hoge"]));
}
0404nobodyさん
2006/12/12(火) 14:20:40ID:K9EOWnsJそれを違うテキストファイルに追加して書き込むにはどうすれば?
書き込むファイルには、すでにテキストが書き込まれていて
その後に、追加したいんですが
0406nobodyさん
2006/12/12(火) 14:30:10ID:K9EOWnsJテキストファイルの内容を全行読み込んで 全行書き込むには
forループさせるしか方法はないんですか?
0407nobodyさん
2006/12/12(火) 14:38:54ID:???http://makimo.to/2ch/pc8_php/index.html
0410nobodyさん
2006/12/12(火) 15:19:37ID:???アクセスしてきた人に対して一時的に「メンテナンス中」と表示するには
どうしたらいいんでしょうか?
イメージとしては、管理者(自分)だけはいつも通りサイトにアクセスできるけど、
一般の訪問者はどのページにアクセスしようとも、
mod_rewriteか何かで、メンテを知らせるページに強制ジャンプさせる…みたいな感じです。
0411nobodyさん
2006/12/12(火) 15:33:14ID:j1klqrWE例えば、A.php,B.php,c.phpというプログラムがあったとして、Aを実行して
処理が終わったら、B,Cの順に実行するということをしたいのですが、どうすれ
ばいいでしょうか?よろしければ、お教えください。
0412nobodyさん
2006/12/12(火) 15:38:57ID:???execute.phpというファイルに
<?php
require('A.php');
require('B.php');
require('C.php');
と記述して、execute.phpにアクセスするとか、単にそれぞれの
ファイルの末尾にrequire()を追加するのは?
0413nobodyさん
2006/12/12(火) 15:46:45ID:???そんなことすら自分で分からないレベルなら、
そういうことをやらないほうがいいと思う。
絶対にいろんなバグや予期せぬ動作が起きまくる。
0415nobodyさん
2006/12/12(火) 15:47:21ID:8yL3wR52どういったときに使い分けるのでしょうか?
0417nobodyさん
2006/12/12(火) 16:00:35ID:8yL3wR52さしつかえなければ416さんの得意分野をおしえてください。
0418nobodyさん
2006/12/12(火) 16:02:00ID:???0419nobodyさん
2006/12/12(火) 16:02:52ID:???わからないから>>411は質問したんだろ。
>絶対にいろんなバグや予期せぬ動作が起きまくる。
これは当たり前のことだろうが。それともお前はバグを起こしたことがないのか?
お前がバグさえ起こしたことがない天才プログラマーなのは勝手だが、意味不明な
アドバイスをするな。
0420nobodyさん
2006/12/12(火) 16:11:41ID:???意味あるアドバイスもせずケチつけるだけのやつ。
答えたくなければスルーすればいいし、お前にこのスレ
読んでくれなんて誰も頼んでないのにね。
ご苦労なこった。
誘導
【総合】 Webprog板質問雑談スレッド 1
http://pc8.2ch.net/test/read.cgi/php/1131016915/l50
こちらへどぞ。
0422やっぱり認定回答者
2006/12/12(火) 16:15:09ID:???自分の知ってることであれば答えてやるから遠慮せず質問ぶつけてこい
0423nobodyさん
2006/12/12(火) 16:16:42ID:???まぁ、そういうお前にもこのスレ読んでくれ
なんて誰も頼んでないわけだが。
>>422
だよな。お前みたいのがいてよかったよ。
0424411
2006/12/12(火) 16:19:50ID:j1klqrWEのに、require.phpとして
<?php
require('A.php');
require('B.php');
?>
として実行したら、Aの部分しか処理できていませんでした。
何故なのでしょうか?
0425nobodyさん
2006/12/12(火) 16:23:51ID:???A/B.phpそれぞれに "<?php" ついてる?
ついでに>>420は
誘導
【総合】 Webprog板質問雑談スレッド 1
http://pc8.2ch.net/test/read.cgi/php/1131016915/l50
こちらへどぞ。
0426411
2006/12/12(火) 16:27:03ID:j1klqrWEええ、ついています。
0428411
2006/12/12(火) 16:43:36ID:j1klqrWE0430nobodyさん
2006/12/12(火) 16:49:59ID:???パターン1
execute.phpからAへ飛ばす
処理が終わったら行の終わりにBへ飛ばす記述
処理が終わったら行の終わりにCへ飛ばす記述
ぱたーん2
execute.phpというファイルに
<?php
require('A.php'); Aの行の終わりに「Aの処理が終了した」変数Aをセット
require('B.php'); 変数AがTRUEならBを処理→変数Bをセット
require('C.php'); 変数CがTRUEならB
0432nobodyさん
2006/12/12(火) 16:58:42ID:???0434nobodyさん
2006/12/12(火) 17:02:14ID:???0435PHP出版
2006/12/12(火) 17:02:35ID:???eval("include('B.php')");
0436nobodyさん
2006/12/12(火) 17:05:14ID:???誰が言ってるんだよ。お前が>>420ならちゃんと名前欄に入れろよ。
そもそも>>420がきちんとレスアンカーをつけないから混乱が起き
てるんだろうが。>>420が>>419にケチつけてるのか、>>413にケチ
つけてるのかわかんねぇよ。
0437nobodyさん
2006/12/12(火) 17:05:27ID:apzoBj1lファイルを作成するプログラムを作っているのですが、
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
みたいなかんじで変数でごちゃごちゃになっています。
もうちょっと綺麗な書き方あったらぜひ教えてください。
0440nobodyさん
2006/12/12(火) 17:12:58ID:???そうか?オレは>>419に対してだと思っていたが。
まぁ、とにかくレスアンカー必須のほうが誤解もなく安全だろ。ということでみなさ
ん、マナーとしてレスアンカーはきちんとつけようね。
0442nobodyさん
2006/12/12(火) 17:17:15ID:???配列とか。
なんかプログラマって、いちゃもんつける人多いよね。
理系だから、完全な解を求めたがるような印象…
0443nobodyさん
2006/12/12(火) 17:18:56ID:???$key = array($_POST['a']=>'a',$_POST['b']=>'b',$_POST['c']=>'c');
echo $key['a'];
0444nobodyさん
2006/12/12(火) 17:20:08ID:apzoBj1lさっそく教えていただいた配列でやってみたいと思います。
extractもマニュアルでひいてきます。
0446nobodyさん
2006/12/12(火) 17:23:16ID:8yL3wR52$file = file("aaa.txt");
ファイルが開けない原因を考えているのですがわかりません。
どなたかアドバイスお願いいたします。
0447nobodyさん
2006/12/12(火) 17:24:24ID:???0449nobodyさん
2006/12/12(火) 17:41:25ID:8yL3wR52やはりパーミッションですよね。
windowsでテストしているのですが、この環境でlinuxと同じように
パーミッションをいじくる方法ってありませんか?
0450nobodyさん
2006/12/12(火) 17:47:39ID:???マニュアルだとnullや0はFalseを返すと書いてあるのになぜでしょうか?
0453nobodyさん
2006/12/12(火) 18:07:44ID:???クエリーから送った0だと空扱いにならないんですがなぜでしょうか?
この記述はAが出力されますが、クエリ文字を$aにおくるとBになるんです。
$a = 0;
if (empty($a)){
echo "A";
}else{
echo "B";
}
0454nobodyさん
2006/12/12(火) 18:40:22ID:???0458453
2006/12/12(火) 19:08:03ID:???なるわけないですね。
0460nobodyさん
2006/12/12(火) 19:14:43ID:???0461411
2006/12/12(火) 19:26:37ID:j1klqrWEというエラーが出ていて、php.iniを修正したら解決しました。
お答えくださった方々、ありがとうございました。
0464nobodyさん
2006/12/12(火) 22:23:01ID:aSyT8QN3http://pc8.2ch.net/test/read.cgi/php/1164209222/888
888さんの言うとおりだとすれば、
今現在ブラウザから第三者がUPした任意のファイルをダウンロードできるサービスをやってるところは
全てブラウザによっては脆弱性をはらんでいる、
ということでしょうか?
さすがに大手ではそれはないような気がしますが、
何か回避策ってありますか?
個人的に思いついたのは、強制的に圧縮処理してからダウンロードさせる、
という方法ですが、これ以外に方法はあるでしょうか?
0465nobodyさん
2006/12/12(火) 22:34:08ID:???0468nobodyさん
2006/12/12(火) 22:54:08ID:???全てはダウンロードする側の自己責任。
0470nobodyさん
2006/12/12(火) 23:02:59ID:???あながち完全にスレ違いってわけでもない
0471nobodyさん
2006/12/12(火) 23:16:22ID:???を尋ねてくる輩まで全部世話しないといけなくなるぞ。
>>464の質問にはPHPに絡むと思われる記述はどこにもないじゃん。
0472nobodyさん
2006/12/12(火) 23:42:04ID:Fq05kJcv自分でファイルに書き出して、セッション管理する方が
サーバーの設定に惑わされることもなくていいように感じるけど。
0473nobodyさん
2006/12/13(水) 00:01:48ID:???0474ID出し忘れてました
2006/12/13(水) 02:35:11ID:e6aGkkm7アクセスしてきた人に対して一時的に「メンテナンス中」と表示するには
どうしたらいいんでしょうか? よく大手サイトなどでメンテナンスのときになってるようにしたいです。
イメージとしては、管理者(自分)だけはいつも通りサイトにアクセスできるけど、
一般の訪問者はどのページにアクセスしようとも、
mod_rewriteか何かで、メンテを知らせるページに強制ジャンプさせる…みたいな感じです。
0475nobodyさん
2006/12/13(水) 03:04:57ID:???header('Location: メンテナンス中のページ');
die();
}
0476nobodyさん
2006/12/13(水) 04:28:27ID:e6aGkkm7なるほど、その手がありましたか!! 意外と盲点だった・・・。
大規模サイトもそんなシンプルな手法なのでしょうか?
0477nobodyさん
2006/12/13(水) 04:37:43ID:???0478nobodyさん
2006/12/13(水) 04:41:01ID:???yahoo並、とかいうあいまいな基準を出されても分からないから数値でよろ。
0480nobodyさん
2006/12/13(水) 06:02:04ID:???少なくとも、1サイトで「ロードバランサ+Webサーバ2台+DBサーバ1台」
という構成が、大規模サイトの最低基準だと仮定すると??
0482nobodyさん
2006/12/13(水) 07:18:26ID:???問題点
1.耐障害性の欠如
分散先のサーバの障害検知は原則として不可能である。
そのため、分散先のサーバのうちの1つだけがサービス不能な場合等に復旧が遅れがちである。
2.分散先サーバの通信継続性
接続ごとに接続先が違うと、接続の継続性が求められる
サーバの場合に問題が起きる可能性がある(暗号化通信など)。
3.分散先サーバの同期
分散サーバのコンテンツの内容が同一でないと、
接続に問題が起きる可能性がある(Webサーバでのリンクなど)。
4.DNSキャッシングの情報更新の際に生じる時差
5.トラフィック負荷を分散する際の予期せぬ偏り
1〜5の問題があるからロードバランサーなんだろうw
0483nobodyさん
2006/12/13(水) 07:30:45ID:???見栄を張りたいのはわかるが、「DNSラウンドロビンの意味を調べに行ったら
偶然カコイイ説明を見つけたよ!みんな聞いてよ!」という文とともに引用であ
ることくらいは書こうね^^
http://ja.wikipedia.org/wiki/DNS%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89%E3%83%AD%E3%83%93%E3%83%B3
0484nobodyさん
2006/12/13(水) 07:40:39ID:???今まで関わったWeb系で一番規模が大きいのは、
Webサーバー6台、DBサーバー2台、メールサーバー1台、SSL処理サーバー1台、ロードバランサー1台だった。
(大規模サイトかわからんがな。ちなみに携帯メインサイト PCサイトもあるけどあくまでも携帯中心だった)
PHPが使われてたのはPCサイトだけだったけど・・・
Perl60% Java30% PHP10%なサイトだった。最初はJavaだけだったはずが、PerlとPHPもやることに/ ,' 3 `ヽーっ
0485nobodyさん
2006/12/13(水) 07:42:41ID:???>1〜5の問題があるからロードバランサーなんだろうw
他人の文章を丸パクリしたくせに生意気なこと言える立場かよw
0487nobodyさん
2006/12/13(水) 07:59:40ID:???うわぁw こいつ完全に開き直ってますwww
>わざわざ検索されたんですねw
>乙ですw
余裕あるように見せても、お前、実際かなり恥ずかしいぞwwwww
0491nobodyさん
2006/12/13(水) 09:59:21ID:???0492nobodyさん
2006/12/13(水) 10:10:40ID:???煽りにいちいち反応するなよ。餓鬼じゃあるまいし。
0493nobodyさん
2006/12/13(水) 11:33:34ID:teIa09dB$a = array("あ",0,"い","う","え","お");
$b = array("か",7,"き","く","け","こ");
$c = array("さ",9,"し","す","せ","そ");
$d = array("た",1,"ち","つ","て","と");
$e = array("な",5,"に","ぬ","ね","の");
$f = array("は",6,"ひ","ふ","へ","ほ");
という$a〜$fの配列を、数字順に$a,$d,$e,$f,$b,$cという風に
並び替えたいのですが、スマートに書けません。
どんな書き方が負荷のかからないスマートな書き方なんでしょうか?
0494493
2006/12/13(水) 11:35:08ID:teIa09dB$New_list = array();
$n = 0;
while(count($list) > $n){
if($n){
$f = 1;
$m = 0;
while($f){
$x = $list[$n][1];
$y = $New_list[$n - $m - 1][1];
if($x < $y){
$New_list[$n - $m] = $New_list[$n - $m -1];
$New_list[$n - $m - 1] = $list[$n];
if($n == $m){ $f = 0; }
}else{
$f = 0;
$New_list[$n - $m] = $list[$n];
}
$m++;
}
}else{
$New_list[$n] = $list[$n];
}
$n++;
}
0495nobodyさん
2006/12/13(水) 11:44:20ID:???sortすればいいだけでは?
0496nobodyさん
2006/12/13(水) 11:53:06ID:???使い古された論法だが、おまいもいちいち反応してるやんけ。
>>493
usort($list, cmp_arr);
function cmp_arr($a, $b) {
return $a[1] < $b[1] ? -1 : $a[1] > $b[1];
}
■ このスレッドは過去ログ倉庫に格納されています