【PHP】下らねぇ質問はここに書き込みやがれpart10
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2005/09/25(日) 02:03:45ID:nLUfPXhDここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
0809nobodyさん
2005/10/12(水) 22:04:26ID:???<?php
define('CONFIG_FILE', 'config.csv');
$fp = fopen(CONFIG_FILE, "r");
while ($conf = fgetcsv($fp, 1024)) {
$filemtime = filemtime($conf[0]);
if ($filemtime > $latest_time) {
$latest_time = $filemtime;
$msg = conf[1];
$url = conf[2];
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<title></title>
</head>
<body>
<?php
echo date('n/d',$latest_time);
echo '<a href="' . $url . '>' . $msg . '</a>';
?>
</body>
</html>
0810nobodyさん
2005/10/12(水) 22:24:32ID:???データがない場合が想定されてないのとconfの頭に$がない
以外はいいんでないの
動作的には遅そうだけど環境がシビアじゃない or CSVファイルが
小さいならこれでおkという印象
あと、これ echo '<a href="' . $url . '>' . $msg . '</a>'; は
echo "<a href=\"$url\">$msg</a>"; のほうが速いらしいね
エスケープが嫌だから俺は異端のヒアドキュメント派だけど
最後に。
動作チェックしろよ
0811nobodyさん
2005/10/12(水) 22:29:29ID:???HTMLに埋め込むのはecho文だけにしたほうが
0812nobodyさん
2005/10/12(水) 22:50:19ID:???サーバOSはWin2kでサーバはapache使ってます。
で、特定のメンバーにBcc使ってメールを送るもの作ってます。
今はimap_mail関数を使っているのですが処理がものすごく遅いです。
(送信相手は2人で最大でも16人)
mailを送る関数でBccを使い複数のメンバーにメールを送る場合、
どれが一番処理が早いでしょうか?
0815nobodyさん
2005/10/13(木) 10:03:42ID:???どのラジオボタンを押しても”0”という値を他のPHPに送り
10秒以内ならそれぞれのラジオボタンに入れてある数値を送る
という処理をするのにはどうしたらよいでしょうか?
データを送るなどは出来ますが時間制限を設けるとなると分からないので
今回質問しました。 宜しくお願いします
0816軟式PHP
2005/10/13(木) 10:14:39ID:???セッションにクイズ開始時間を保持させておいて、ラジオボタンの
値はとりあえずそのまま送信させる。
送信後ページで現在の時刻とクイズ開始時間を比較させて10秒以上だったらラジオボタンの値を0にするってのは?
厳密にやらないならJavaScriptで時間制限(timer)・自動送信(location)・ラジオボタンの値(form.elements.value=値)の変更も全部出来る。
0817nobodyさん
2005/10/13(木) 10:16:40ID:???板違い
サーバーサイドの処理とクライアントサイド処理の違いを認識すべし
漏れならJavascriptを使う
つか、ラジオボタンで3択にすると2回クリックする必要があるので、
それで時間制限アリってのは不親切では?
0818815
2005/10/13(木) 10:53:39ID:???返信どうもです その方法で作ってみますね
ありがとうございました
>>817さん
JavaScriptですかぁ Javaの方はいまいち分からないので
816さんの方法で作ってみます
あと板違いすみませんでした・・・
0819nobodyさん
2005/10/13(木) 11:32:41ID:???0820815
2005/10/13(木) 11:56:32ID:???時間をセッションに入れるには
session_start();
session_register("jikan");
$jikan= date("s");
この様なphpであっているのでしょうか?(エラーが出るので違うと思いますが・・・
それとクイズの問題表示と問題開始時間が決められるのがphp1として
クイズが合っているのか判定するphpをphp2としております
php1からphp2へ,問題開始時間のセッションの値を渡すのも出来ませんでした。
あと時間をifで比べるということもいまいち分かりませんでした、
if( 開始時間+10 > $date_s = date("s")){
答えの値を0
{
この様なif文で出来るのでしょうか?開始時間に+10と書いて+されるのか心配です
データがうまく渡っていなかったので試すことが出来なかったのでお聞きしました。
1.セッションにクイズ開始時間の保存の仕方
2.違うphpにクイズ開始時間の値の渡し方
3.時間を比べて10秒以内だったら答えの値を0にする判定文
以上を教えていただければ非常に助かります
質問も多くて申し訳ないですが 宜しくお願いいたします。
0821nobodyさん
2005/10/13(木) 11:59:38ID:geTy/+mkC-BOARDとそのオマケにあるだろ。ちゃんと探せや。
0822nobodyさん
2005/10/13(木) 12:09:05ID:???1と2
セッション使わなくても
ページ内にhiddenで埋めて回答と一緒に返せばよいと思う。
そんなに神経使わなくて良い物でしょ?
3
現在時間から開始時間を引いた値が10以上とする方が楽。
0823nobodyさん
2005/10/13(木) 12:18:24ID:???--- php1.php ---
<?php
session_start();
$_SESSION['jikan'] = time();
$fjikan = date('Y/m/d H:i:s', $_SESSION['jikan']);
echo <<<EOD
<html>
<body>
開始時間:{$fjikan}
<form action="php2.php" method="post">
<input type="radio" name="answer" value="1">テスト1
<input type="radio" name="answer" value="2">テスト2
<input type="radio" name="answer" value="3">テスト3
<br><input type="submit" value="送信">
</form>
</body>
</html>
EOD;
?>
0824823
2005/10/13(木) 12:20:06ID:???--- php2.php ---
<?php
session_start();
$start = $_SESSION['jikan'];
$jikan = time();
$fstart = date('Y/m/d H:i:s', $start);
$fjikan = date('Y/m/d H:i:s', $jikan);
$diff = $jikan - $start;
$answer = $_POST['answer'];
if ($diff >= 10) $answer = 0;
echo <<<EOD
<html>
<body>
開始時間:{$fstart}<br>
現在時間:{$fjikan}<br>
差:{$diff}秒<br>
答え:{$answer}
</form>
</body>
</html>
EOD;
?>
0827nobodyさん
2005/10/13(木) 13:10:44ID:G6+P+YYd最悪、対象はひらがなやカタカナだけでもかまわないんですが。
0828nobodyさん
2005/10/13(木) 13:58:42ID:???(オープンソースだし、コード読んで移植するのも可)
0829sage
2005/10/13(木) 14:12:02ID:I2B+ArdhPHPで、PSQLデータ内の行の1つを取り出すための言語。
(例、ID・001 name・PC value・300と言うデータの中の300だけを取り出す)
どういう言語なのか、それと使い方も教えてもらえればうれしいです。
言葉足らずでしたら、すいません。
0830815
2005/10/13(木) 14:12:55ID:???貴重な意見ありがとうございます
>>現在時間から開始時間を引いた値が10以上とする方が楽。
確かにそのとうりです 勉強になりますありがとうございました。
>>823さん
ソースまで記入してくださり大変感謝です。
やってみたところ無事に秒数を取ることが出来ました。
しかし問題が一つあります
経過時間などもちゃんと表示されて値も渡っているのですが
警告がでてしまいます、以下に記入しています
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Program Files\Apache Group\Apache2\htdocs\kuizu\toi2.php:2)
in C:\Program Files\Apache Group\Apache2\htdocs\kuizu\toi2.php on line 3
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Program Files\Apache Group\Apache2\htdocs\kuizu\toi2.php:2)
in C:\Program Files\Apache Group\Apache2\htdocs\kuizu\toi2.php on line 3
このエラー文を検索してみると結構有名らしく色々出てきました、
php.iniをサイトに書いてある通りにいじったりしましたが
無理でした。 こちらでも現在エラーの原因を探している最中です
もし分かる方がいらっしゃれば教えていただきたいです。
0831軟式PHP
2005/10/13(木) 14:13:20ID:???0832軟式PHP
2005/10/13(木) 14:14:55ID:???>>830はsession_startをコードの一番初めに書いていない(何か出力した後にsessionをスタートさせている)んじゃないかな。
0833815
2005/10/13(木) 14:24:25ID:???>>session_startをコードの一番初めに書いていない(何か出力した後にsessionをスタートさせている)んじゃないかな。
はい 私もネットで調べてそれは初めに見てみたのですが コードの一番上に記入しておりますので
その事でエラーが出ているという事は無いですね
ちなみにエラー箇所であるtoi2.php on line 3 は >>823さんのコード通りです
0834nobodyさん
2005/10/13(木) 14:29:12ID:???改行があるか、「--- php2.php ---」までコピペしているに1票
0835815
2005/10/13(木) 14:31:08ID:???みなさんこんな超初心者にやさしく回答していただき
本当にありがとうございました。
いつか答える側になれるように勉強がんばります
0836815
2005/10/13(木) 14:34:32ID:???改行がありました 改行もダメとは夢にも思っておりませんでした
お答えいただきありがとうございました
0837nobodyさん
2005/10/13(木) 14:40:06ID:???0838nobodyさん
2005/10/13(木) 14:48:23ID:???改行文字(1byte〜2byte)が本文として出力される(=本文を出力したのでヘッダ送信も終了した事になる。)
0839823
2005/10/13(木) 14:52:54ID:???動いて良かったね。サンプルなんで省略してるけど
$answer = $_POST['answer'];
辺りのコードは、本来はサニタイズする必要がある($answer をどう扱うかにもよるが)。
サニタイズとは?とか、どうすれば?とかは、まったりと勉強してくだされ。
そのまま使用することはないだろうし、勉強中の習作だと思うけど、念のため。
0840nobodyさん
2005/10/13(木) 14:55:22ID:???imap_mail()でもWinは直接SMTPで送るみたいだから、mail()と多分いっしょ。
リモートのSMTPサーバを利用しているのなら、ローカルにMTAをたてて、
そこにキューを溜めるようにすれば多分速くなる。
ローカルにあるMTAで遅い場合、それはPHPの問題じゃないね。
0841nobodyさん
2005/10/13(木) 17:26:33ID:???確実にヲチスレで嘲笑されるようなくだらねぇ質問が,
このスレでは普通に回答されるのはどうして?
0842nobodyさん
2005/10/13(木) 17:36:58ID:???test.txtに出力するのと保存を両方処理させるのに困ってます。
どうかご教授くださいお願い致します。
0843nobodyさん
2005/10/13(木) 17:46:17ID:???残念でした
「うまくいきません」はNGワードです
0844nobodyさん
2005/10/13(木) 17:58:33ID:???まるまる答えを書くのは簡単なんだが、どう上手くいかないか書いた方が暇ネタとして
相手してもらえると思うけど…
まずは
入力値をtest.txtに保存する処理
text.txtをダウンロードさせる処理
の2つに処理を分けて、それぞれがキッチリと動くことを念頭においてやってみたら?
0845nobodyさん
2005/10/13(木) 19:14:00ID:???PSQLっていう名前のデータベースまたはデータストレージ製品つうのが思い浮かばない。
PostgreSQLにpsqlっていうツールはあるけど。
まあPSQLというぐらいだから、SQL(問い合わせ言語)が使えるんじゃないの。
SQLにも細かいところで差異はあるけど、標準的な仕様に合わせるように極力してる筈
だから、一般的なSQLについて調べると良いよ。初心者向けの本も沢山出てる。
例の場合、「SELECT value FROM テーブル WHERE ID='001' AND name='PC'」とか。
普通IDはユニークな値とするものだから、AND以降は不要かもね。
0847nobodyさん
2005/10/13(木) 21:52:25ID:???○物好き
0848nobodyさん
2005/10/13(木) 21:58:47ID:???0849nobodyさん
2005/10/14(金) 01:03:05ID:???このスレには、つまらない知識の独占なんてバカバカしいと思ってる度量の広い人間が多いから。
0850nobodyさん
2005/10/14(金) 01:16:58ID:???0851nobodyさん
2005/10/14(金) 02:39:53ID:???つ http://www.postgresql.jp/
//PostgreSQLじゃなかったらヌルーしてね
0852nobodyさん
2005/10/14(金) 10:44:09ID:???これに尽きる
0853nobodyさん
2005/10/14(金) 13:22:00ID:hq2CEuCn0854sage
2005/10/14(金) 13:22:54ID:/+ebJ9UKくだらなさすぎて、スルーされるかと思いました。
参考書も買ったのですが、少し理解力に欠けまして・・・
もう少しがんばってきます。
0855nobodyさん
2005/10/14(金) 13:35:54ID:???佐藤
佐藤
鈴木
佐藤
田中
佐藤
田中
と言う感じで書かれている中から同じ名前が3つ以上ある者を
変数に持ってくるにはどうすればいいんでしょうか?
ほんと初心者ですいません・・・
0856nobodyさん
2005/10/14(金) 13:51:01ID:???1) file でテキストファイルを読み込んで配列に展開
2) array_count_values で 1) の配列を元に配列データと出現回数の連想配列を作成
3) 2) の連想配列から出現回数 >=3 をチョイス
0857nobodyさん
2005/10/14(金) 15:42:30ID:???すいません、小一時間悩んだんですが出来ませんで、
3) 2) の連想配列から出現回数 >=3 をチョイス
の所を簡単に書いていただけないでしょうか?
0858nobodyさん
2005/10/14(金) 15:47:38ID:???0859856
2005/10/14(金) 16:16:18ID:???う〜ん、余計なお世話かもしれんが…
1)、 2) はまるまる答えを書いているようなもので、唯一 3) が
ロジック(と言うほどのものでもないけど)を考えるところだから、
ここを丸投げしなければならないのはプログラムを作る人としてはつらいかも。
3 回以上出現する名前が複数存在する場合を考慮して配列($achoices)に
格納した例が以下。絶対に複数存在しないのであれば、普通の変数でもいい。
<?php
$alines = file('test.txt');
$anames_counts = array_count_values($alines);
$achoices = array();
foreach ($anames_counts as $name => $count) {
if ($count >= 3) {
// echo "$name<br>"; //debug
$achoices[] = $name;
}
}
print_r($achoices);
?>
0860nobodyさん
2005/10/14(金) 16:31:00ID:???名前でソートしてforeach
3連続ヒットでピックアップ
でかいならwhileで一行ずつ読み
if (isset($count[$name])) $count[$name]++; else $count[$name]=1;
のように集計
もしくはDBに突っ込んで
SELECT name, COUNT(name) AS num FROM test GROUP BY name HAVING COUNT(name) > 2;
0862nobodyさん
2005/10/14(金) 16:39:51ID:???0863855
2005/10/14(金) 16:56:17ID:???一応配列にはしなかったんですが>>859と同じようにしたつもりなんですが
出力されませんでした。
で、>>859をコピーさせて頂いたんですがやはり出力しません・・・
$anames_counts = array_count_values($alines);
print_r($anames_counts);
だとちゃんと出てくるので何だかよく分からなくなってしまいました。(@_@;)
ご迷惑かけて申し訳ありませんです。
0864nobodyさん
2005/10/14(金) 17:06:12ID:???おそらくテキストファイルの方がおかしいんじゃない?
ちゃんと1行に1つの名前にしてる?
ファイルのパス間違えてない?
0865855
2005/10/14(金) 17:17:07ID:???新しくtest.txtで打ち直してやってみたんですが、
$anames_counts = array_count_values($alines);
print_r($anames_counts);
だと
Array ( [佐藤 ] => 4 [加藤 ] => 1 [山田 ] => 1 [飯田] => 1 )
で出るんですが、foreachの処理を入れるとやっぱり空白になっちゃいます
0867nobodyさん
2005/10/14(金) 17:23:52ID:???0868nobodyさん
2005/10/14(金) 17:25:17ID:???0869nobodyさん
2005/10/14(金) 17:26:41ID:???そのままコピペしたんだろ?全角スペースが入っちゃってるでしょ。
全角スペースを消せばOKだ
0872nobodyさん
2005/10/14(金) 17:31:42ID:???それ直したらちゃんと動いたよ.当たり前だけどww
0873nobodyさん
2005/10/14(金) 17:35:38ID:???可能でしょうか?
0874nobodyさん
2005/10/14(金) 17:38:22ID:???0875855
2005/10/14(金) 17:41:48ID:???えー、全くお察しの通りでこちらでも動きました。
本当にご迷惑おかけしましたm(_ _)m
ご親切にしてくれた方、有難うございました。
0876nobodyさん
2005/10/14(金) 18:18:00ID:???http://www.asial.co.jp/products/jpgraph/japanese.phpを参考に変更もしました。
フォントを呼び出すにはどうすればよいのでしょうか?当然ながら$graph->title->SetFont(FF_PMINCHO);ではなりませんでした。
<?php
require_once("jpgraph/jpgraph.php");
require_once("jpgraph/jpgraph_bar.php");
$objGrh = new Graph(450,250,"auto");
$objGrh->SetScale("textlin");
$objGrh->title->Set("bbb");
$objGrh->xaxis->title->Set("ccc");
$objGrh->xaxis->title->Set("テスト");
$data=array(array(500,100),array(400,200));
$objPlot[]=new BarPlot($data[0]);
$objPlot[]=new BarPlot($data[1]);
$objPlot[0]->SetLegend('AAA');
$objPlot[1]->SetLegend('BBB');
$objPlot[0]->SetFillColor('[email protected]');
$objPlot[1]->SetFillColor('[email protected]');
$objGbp=new GroupBarPlot($objPlot);
$objGbp->SetWidth(0.80);
$objGrh->Add($objGbp);
$objGrh->Stroke();
?>
0877876
2005/10/14(金) 18:40:29ID:???他のアルファベットの部分を日本語にしたいのです。
上の構文でもグラフは出力できますが、日本語の部分は文字化けしています。
0878nobodyさん
2005/10/14(金) 18:46:29ID:???当然ながら
jpgraphに渡される文字列がUTF-8になっていますよね?
0880nobodyさん
2005/10/14(金) 20:51:06ID:???ファイルの最初にどんどん挿入していく方法ってありますか?
たとえば
1
2
3
とあったときに4を一番上の行に追加して
4
1
2
3
としたいのですが。
0882nobodyさん
2005/10/14(金) 21:00:25ID:???0884nobodyさん
2005/10/14(金) 21:02:09ID:???0885nobodyさん
2005/10/14(金) 21:21:55ID:???0886nobodyさん
2005/10/14(金) 21:24:45ID:???俺の場合はDB使わずに、普通にファイル読み込んで、先頭の行に挿入するという方法が知りたいのです。
正規表現で ^ でリプレイスするというような方法しかないですか?
0887nobodyさん
2005/10/14(金) 21:29:56ID:???0888nobodyさん
2005/10/14(金) 21:39:17ID:87Z0VpJT同名で別の拡張子のファイルを消す良い方法はあるんでしょうか?
ちなみにこれ↓ではダメでした…。
$del_file_name='/usr/local/apache/htdocs/img/'."img_001".'.'."***";
unlink( $del_file_name );
0889nobodyさん
2005/10/14(金) 21:46:13ID:???ライブラリ使わないとなると、globとかでリスト作って一個ずつ消すしかなさそう
``でシェル呼べばそれで終わりだけどね
0890nobodyさん
2005/10/14(金) 21:56:45ID:???マニュアルに参考になるサンプルって結構あるよね。
unlink
To delete files using wildcards:
<?
function delfile($str)
{
foreach(glob($str) as $fn) {
unlink($fn);
}
}
?>
0891nobodyさん
2005/10/14(金) 22:01:11ID:???殆どのファイルシステムでファイルの書き込みは
良くてデータの追記ができるぐらいで、データ全体の置換が普通。
0893nobodyさん
2005/10/14(金) 22:06:54ID:???データ構造がわからんと何とも言えん。言えることは「DB使え」のみ
0895nobodyさん
2005/10/14(金) 22:25:33ID:???0897nobodyさん
2005/10/14(金) 23:18:42ID:???<FORM action="input.php">
<INPUT type="text" name="data1">
<INPUT type="text" name="data2">
<INPUT type="text" name="data3">
:
input.php の中で data1〜n に入力ミスがないか調べた上で、
data1〜n に入力されたデータを output.php に送りたいのですが、
これは一体どうやれば良いのでしょうか?
header("Location:")を使うと値は渡せませんし…。
入力ミスがあった時は「エラー!! **個目のデータを入力し直して下さい」と表示し、
入力ミスがない場合は次のステップへ進む、という処理をしたいのです。
0898nobodyさん
2005/10/14(金) 23:24:15ID:???0899nobodyさん
2005/10/14(金) 23:29:02ID:???解答ありがとうございます。
セッション変数にそんなに多量の情報をブチ込んでも大丈夫なんですか?
ログインの過程でセッションを触ったので、セッション変数でのやり方なら分かるんですが、
何かスマートでない感じがして…。
0900nobodyさん
2005/10/14(金) 23:41:17ID:???具体的に
0901876
2005/10/14(金) 23:42:44ID:???エンコーディングってファイルとして保存するときに設定するやつのことですか?
それなら、EUCと改行はLFにしています。
訳の分からないことを言っていたら、教えて頂けたらありがたいです。
0902nobodyさん
2005/10/14(金) 23:43:13ID:???<INPUT type="text" name="data2">
<INPUT type="text" name="data3">
:
と書きましたがこれが結構あるんです。最大で50個程度。
0904nobodyさん
2005/10/14(金) 23:53:41ID:???表示に使うファイルをincludeなりrequireなりするとややこしくならなくてよいような。
>>901
jpgraphに渡す文字列はUTF-8にしてあげてください。
0908nobodyさん
2005/10/15(土) 01:17:43ID:???ファイルの後ろに足して、あとから後ろから数行だけ読み込むって処理はできますか?
feofなんかで回して止まった時点の直近の配列数個とかいう手段以外でもっとスマートなやり方が
あればいいんですが、どうなんでしょうか。
レス数が900を超えています。1000を超えると表示できなくなるよ。