【PHP】下らねぇ質問はID出して書き込みやがれ 79
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/01/13(火) 21:48:25ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 78
http://pc11.2ch.net/test/read.cgi/php/1230026935/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0075nobodyさん
2009/01/15(木) 19:07:33ID:???ちゃあんとプログラムは書けるってこと。
ざまあみろ。
0076nobodyさん
2009/01/15(木) 19:17:40ID:???$array01[0]["aaa"] = "1";
$array01[1]["aaa"] = "2";
$array02[0]["bbb"] = "3";
$array02[1]["bbb"] = "4";
function intMerge(&$arrayTo, $key, &$arrayFr)
{
$arrayTo = array_merge($arrayTo, $arrayFr[$key]);
}
$result = $array01;
array_walk($result,"intMerge", $array02);
print_r($result);
0077nobodyさん
2009/01/15(木) 19:23:34ID:???プログラマーはまず「否定」から入る。
これは俺が接した人間、利用した掲示板全てで同じ行動だった
それを覚えておけば質問するのも怖くないよ^^
0078nobodyさん
2009/01/15(木) 19:26:12ID:???ところがアメリカ人のプログラマーはそうではない。
ジャップは死ねってこと。
ジャップは死ね!
ジャップのプログラマーは死ね!
ただし東大のプログラマーは親切になんでも教えてくれる。
だから東大のプログラマーだけは生きて良し。
0079nobodyさん
2009/01/15(木) 19:27:37ID:???0080nobodyさん
2009/01/15(木) 19:29:24ID:R8RK6Tzt0081nobodyさん
2009/01/15(木) 19:37:55ID:R8RK6Tzt1が食べ物、2が電化製品、3が本類、4が人名を置いてます
「food.dat」
1,オレンジ
2,テレビ
3,ミステリー小説
4,橋本大樹
これをジャンル別に分け、
1のジャンルは配列$ary1へ、2のジャンルは配列$ary2へ
3のジャンルは配列$ary3へ、4のジャンルは配列$ary4へそれぞれ格納したいと思います
foreachで回してifで振り分ければできるのですがもっと効率の良い書き方をしたいです
お手数をおかけいたしますがどなたかご教授お願いいたします
0082nobodyさん
2009/01/15(木) 19:56:00ID:???0083nobodyさん
2009/01/15(木) 20:07:58ID:???http://wiredvision.jp/news/200901/2009011518.html
0084nobodyさん
2009/01/15(木) 20:08:55ID:???___________________
こうじゃね?
0085nobodyさん
2009/01/15(木) 20:09:27ID:???0087nobodyさん
2009/01/15(木) 20:24:03ID:???警告
「PDO コンストラクタからの例外をアプリケーシ
ョン内でキャッチしない場合、 zend エンジンは
スクリプトの実行を終了し、バックトレースを表
示します。 このバックトレースを見れば、デー
タベースへの接続の詳細がわかってしまいま
す。 その中にはユーザ名やパスワードも含ま
れます。 (catch 文を使用して) 明示的に例外
をキャッチするか、 あるいは set_exception_ha
ndler() を使用して 暗黙的に例外をキャッチす
るようにしましょう。 」
-------------------------------------------------
↑この仕様って、結構困るんだけど。
0088nobodyさん
2009/01/15(木) 20:24:57ID:???0089nobodyさん
2009/01/15(木) 20:27:55ID:???009081
2009/01/15(木) 21:00:32ID:???どなたか助けてください
0091nobodyさん
2009/01/15(木) 21:05:50ID:???ジャンルって何?もしかしてIDのこと?
ファイル名がfoodってどういうこと?
ジャンル・名前なの?ジャンル|データなの?
あと>>1
0092nobodyさん
2009/01/15(木) 21:10:10ID:GvZc4PNy取得するときは、かならずfetchしないとダメなの?
009381
2009/01/15(木) 21:11:20ID:uz1526ADファイル名は食べ物を使うから付けただけで深い意味はないです
ジャンルはIDのことです
food.txtの中身は
1行目→1,オレンジ
2行目→2,テレビ
3行目→3,ミステリー小説
4行目→4,橋本大樹
5行目→2,ラジオ
6行目→4,坂本竜馬
こんな感じでデータは不規則に追加されていきます
0094nobodyさん
2009/01/15(木) 21:16:40ID:???http://d.hatena.ne.jp/sotarok/20081121/1227251508
0095nobodyさん
2009/01/15(木) 21:21:06ID:???こんな感じでいいかい
// food.dat の代わり
$uri = 'data:text/csv;charset=UTF-8;base64,MSzjgqrjg6zjg7PjgrgNCjIs44OG44Os4'
. '4OTDQozLOODn+OCueODhuODquODvOWwj+iqrA0KNCzmqYvmnKzlpKfmqLkNCjEs44Ki44OD4'
. '4OX44OrDQoyLOODrOOCs+ODvOODgOODvA==';
$table = array();
$fp = fopen($uri, 'r');
while (($cols = fgetcsv($fp)) !== false) {
$table[(int)$cols[0]][] = $cols[1];
}
fclose($fp);
echo file_get_contents($uri), PHP_EOL, var_export($table, true);
// ジャンル別にローカルスコープへ展開
// foreach ($table as $genre => $items) {
// $var = 'ary' . $genre;
// $$var = $items;
// }
// var_dump($ary1, $ary2, $ary3, $ary4);
0097nobodyさん
2009/01/15(木) 21:35:45ID:uz1526AD$file = file("food.txt");
foreach($file as $v) {
$a=explode(",",$v);
switch($a[0]) {
case 1:$ary1[]=$v;break;
case 2:$ary1[]=$v;break;
case 3:$ary1[]=$v;break;
case 4:$ary1[]=$v;break;
}
>>95さんのやり方すごいですねっ!勉強になりました
ありがとうございました
0098nobodyさん
2009/01/15(木) 21:38:42ID:???0099nobodyさん
2009/01/15(木) 21:43:33ID:uz1526AD0100nobodyさん
2009/01/15(木) 21:45:38ID:???0102nobodyさん
2009/01/15(木) 21:55:50ID:???0103nobodyさん
2009/01/15(木) 22:25:58ID:???PHPの flock() はアドバイザリロックなので
読み手も書き手も適切なロック(LOCK_SH,LOCK_EX)を取らないと意味を成さないのよね
なのでロックは必須
0105nobodyさん
2009/01/15(木) 23:54:00ID:bes4Fp8w文字の部分はちゃんと表示されます
外部スタイルシートを読み込んでいてDWではちゃんとプレビューされるんですが・・・
phpで作るサイトは全部includeしないとだめなんですか?
phpでサイトを構築するのは初めてでよくわかりません
0106nobodyさん
2009/01/16(金) 00:03:49ID:???生成されたHTMLか、読み込んでいるCSSが悪い。
「ソースを表示」からHTMLソースをHTMLファイルとして保存して、サーバにアップロードしてみろ。同じ現象が起きる。
0108nobodyさん
2009/01/16(金) 00:21:40ID:???────
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<link rel="stylesheet" type="text/css" href="style.css"/>
<title>無題ドキュメント</title>
</head>
<body>
<div id="wrap">
<div id="head">
<h1>my site</h1>
</div>
</div>
</body>
</html>
0109nobodyさん
2009/01/16(金) 00:22:01ID:???────
*{
margin:0;
padding:0;
}
#wrap{
width:800px;
height:600px;
margin:30px auto;
background-color:#FFFFFF;
}
#head{
width:800px;
height:80px;
background-color:#336633;
}
備考
xamppを使用、ハローワールドのテストは成功、
ディレクトリはxampp内のhtdocs/mysite/index.php , style.css
0111nobodyさん
2009/01/16(金) 00:29:04ID:???0112nobodyさん
2009/01/16(金) 00:32:34ID:???にチェックしたら解決できました
すいません><
0113nobodyさん
2009/01/16(金) 02:25:38ID:cpRhXZRJconstっていうのは
クラスの中でしか、使えない?
0114nobodyさん
2009/01/16(金) 02:36:59ID:cpRhXZRJ$dsn = 'sqlite:C:/aaa';
$pdo = new PDO($dsn);
$sth = $pdo->prepare(
'SELECT count
FROM bookmark
where id=1');
$sth->execute();
$a=$sth->fetch(PDO::FETCH_ASSOC);
print $a[count];
?>
これを実行すると
「20」
と、こちらが欲しい結果が表示されるが、それと共に
Notice: Use of undefined constant count - assumed 'count' in
という、Noticeが出てしまう。
「countを初期化すればいいのか?」
と思ったが、constはクラスの中でしか使えないみたい。
どうすれば初期化できる?
0115nobodyさん
2009/01/16(金) 02:37:10ID:???0116nobodyさん
2009/01/16(金) 02:38:22ID:cpRhXZRJは直接、クエリーを発行したけど、
今度はそれの、プリペアード・ステートメント版を作ってるということ。
この方がSQLインジェクションに強くなる。
0117nobodyさん
2009/01/16(金) 02:38:59ID:cpRhXZRJなるほどね。
Noticeにconstantという用語が出ているからといって、
かならずしもconstを使って初期化しなければならない、
ということではなかったんだな。
0118nobodyさん
2009/01/16(金) 02:44:32ID:cpRhXZRJdefine("count", ""); //countを初期化
$dsn = 'sqlite:C:aaa';//データーベースの情報の定義
$pdo = new PDO($dsn);//データーベース作成
$sth = $pdo->prepare(//プリペアード・ステートメント
'SELECT count//フィールド選択
FROM bookmark//テーブル名選択
where id=1');//レコード選択
$sth->execute();//実行
$a=$sth->fetch(PDO::FETCH_ASSOC);//データーを取ってる
print $a[count];//表示
?>
------------------------------------------------------
これにしたら、今度は、次のNoticeが出るようになった。
Notice: Undefined index: in C:1.php on line 14
indexを初期化するってなんだ?
$a[count]を初期化してみたが、違うようだし。
0119nobodyさん
2009/01/16(金) 02:57:41ID:cpRhXZRJ$dsn = 'sqlite:C:/aaa';
$pdo = new PDO($dsn);
$sth = $pdo->prepare(
'SELECT count
FROM bookmark
where id=1');
$sth->execute();
$a=$sth->fetch(PDO::FETCH_ASSOC);
if (isset($a['count'])){
print $a['count'];
}
?>
これでいけた。
シングル・クオーテーションつけてないだけだった。
つけたらNotice消えた。
0120nobodyさん
2009/01/16(金) 02:59:00ID:cpRhXZRJデーターベースから情報を取ってきて
画面に表示する、というところまで、できた。
次の挑戦は、プレースホルダ、変数のバインドだ。
0122nobodyさん
2009/01/16(金) 07:08:59ID:???0123nobodyさん
2009/01/16(金) 09:09:33ID:???0124nobodyさん
2009/01/16(金) 11:19:23ID:???チラ裏に書いておきなさいってば
0125nobodyさん
2009/01/16(金) 14:08:45ID:JjgIvuO0結果が正規分布になりません
参考にしたのは以下のHPです
http://blog.longearth.net/2008/04/30/c%E3%81%A7%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%83%BB%E3%83%9F%E3%83%A5%E3%83%BC%E3%83%A9%E3%83%BC%E6%B3%95%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E6%AD%A3%E8%A6%8F%E4%B9%B1%E6%95%B0%E3%82%92%E7%99%BA/
http://www.inf.ie.kanagawa-u.ac.jp/c_learn/class/norminv.html
//正規分布の乱数を10000回生成
for($i=0;$i<$10000;$i++){
$x=rand();
$y=rand();
$a=sqrt(abs(-2*log($x)))*(cos(2*pi()*$y));
@$result[floor($a*5.8+171)]++;//身長(平均171、標準偏差5.8)
}
//結果表示
for($i=100;$i<=200;$i++){
echo @"$i {$res[$i]}<br>";
}
何が間違っているのか分かる方、よろしくお願いします。
0126nobodyさん
2009/01/16(金) 14:23:11ID:???0127nobodyさん
2009/01/16(金) 14:23:53ID:???0128nobodyさん
2009/01/16(金) 14:26:52ID:???0129nobodyさん
2009/01/16(金) 14:30:18ID:JjgIvuO0×for($i=0;$i<$10000;$i++){
○for($i=0;$i<10000;$i++){
×echo @"$i {$res[$i]}<br>";
○echo @"$i {$result[$i]}<br>";
0130nobodyさん
2009/01/16(金) 14:43:58ID:???舌足らずな>>126を補足すると
その変換式には 0 < $x <= 1, 0 < $y <= 1 を与えろって事
http://www.php.net/manual/ja/function.rand.php
0131nobodyさん
2009/01/16(金) 14:46:49ID:JjgIvuO0一様乱数の事を偏りの無い結果を返す乱数なら範囲はどうでもいいと誤解していました。
一様乱数は0〜1まででないと駄目で
$x=rand()/getrandmax();
$y=rand()/getrandmax();
としたら正規分布した結果が得られました
>>126さんどうもありがとう御座いました
0132nobodyさん
2009/01/16(金) 14:47:25ID:JjgIvuO00133nobodyさん
2009/01/16(金) 14:57:51ID:BSD/KGQfrssで更新情報を取得したいのですが、これはレンタルサーバに負荷がかかるのでしょうか?
0134nobodyさん
2009/01/16(金) 15:03:28ID:???0135nobodyさん
2009/01/16(金) 15:03:32ID:???0139135
2009/01/16(金) 15:08:21ID:???0143nobodyさん
2009/01/16(金) 15:13:42ID:???実際に問題になる負荷かどうかはこのスレの住人が決める事じゃないよ
レンタルサーバに相談してね
RSSはcron等で定期的に更新するようにして
表示する際はそのキャッシュを参照する仕組みをとってりゃ却下されないでしょう
0144133
2009/01/16(金) 15:33:49ID:???index.phpには日時だけを表示するようにしますがこれも重い処理になるのでしょうか?
ありがとうございました
0145nobodyさん
2009/01/16(金) 15:36:44ID:???0146nobodyさん
2009/01/16(金) 18:24:47ID:???0148nobodyさん
2009/01/16(金) 18:43:49ID:???0149nobodyさん
2009/01/16(金) 18:44:56ID:tYa6x4Bm本文などは転送量が多くなるので更新日時だけを取得したいです
0150nobodyさん
2009/01/16(金) 19:00:33ID:???0151nobodyさん
2009/01/16(金) 19:02:27ID:???RSSを配信しているファイルで更新日時をはいてるかどうか試してみるといい。
0153nobodyさん
2009/01/16(金) 19:47:28ID:08Ji2paIindex.phpと保存したファイルをfffhpを使ってupしても
変なエラーコードがweb上で表示されます。
助けてください。
0154nobodyさん
2009/01/16(金) 19:55:35ID:???0156nobodyさん
2009/01/16(金) 20:05:27ID:???0157nobodyさん
2009/01/16(金) 20:06:34ID:tYa6x4Bmエラーコード晒してからかけよバカ
0160nobodyさん
2009/01/16(金) 20:56:54ID:???0161nobodyさん
2009/01/16(金) 21:20:34ID:cpRhXZRJそのエラーメッセージをコピペしてください。
もちろん公開できない部分は適当に変えて。
0162nobodyさん
2009/01/16(金) 21:28:24ID:???0163153
2009/01/16(金) 21:36:07ID:08Ji2paIいま携帯からなので自宅へもどりしだいエラーコード書きます。
0165nobodyさん
2009/01/16(金) 22:40:42ID:???0167nobodyさん
2009/01/16(金) 23:05:31ID:3QNMuF/NSTART
あいうえお
END
START
かきくけこ
END
";
という変数から正規表現で間の文字だけ取得し、配列に入れたいと思います。
preg_match_all("/START(.*)END/is",$body,$array);
としたのですが、取得できません。どういう書き方をすればいいのでしょうか?
0168nobodyさん
2009/01/16(金) 23:07:08ID:???0169nobodyさん
2009/01/16(金) 23:17:16ID:e0uLUs7Z教えて下さい!!
0170nobodyさん
2009/01/16(金) 23:21:27ID:n9qydKtv文字コードがUTF-8で作った掲示板をブラウザで表示して
ブラウザの表示を文字化け覚悟でEUCに変換、その後POSTで送信したら
内部に届く文字はEUCになるんですかね?
0171nobodyさん
2009/01/16(金) 23:25:54ID:???聞いたことよりもやってみた結果のほうが何倍も信用できるだろ?
0172170
2009/01/16(金) 23:35:26ID:???返信ありがとうございます。
やってみたらEUCで送られてきました・・・
どう対処しようかと考えましたが
mbstring.http_input = auto
mbstring.encoding_translation = On
にしたら全てUTF-8になりました。
お手数をおかけしました。
対処法はこれでいいんですかね?
0173nobodyさん
2009/01/16(金) 23:36:34ID:???0174170
2009/01/16(金) 23:53:36ID:???mbstring.http_input = autoでは
まずいんですかね?
出来ればmbstring.internal_encodingで
設定しているUTF-8でいただきたいんですけど・・・
0175nobodyさん
2009/01/17(土) 00:41:26ID:sXvdxnWvもしくは今の時代utf8だからそのままでもいいとは思うけど
■ このスレッドは過去ログ倉庫に格納されています