くだすれPHP(超初心者用)3
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/10/25(木) 16:04:31ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
http://jp.php.net/
---前スレのテンプレここまで---
前スレ: くだすれPHP(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1164617202/
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 57
http://pc11.2ch.net/test/read.cgi/php/1193062236/
△▲ WebProg 初心者の質問 Part16 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1187729623/
完走したら、雑談スレで待機でどうでしょう
【総合】 Webprog板質問雑談スレッド 1
http://pc11.2ch.net/test/read.cgi/php/1131016915/
0455448
2008/02/28(木) 19:24:05ID:???$sql = "insert into tablename (log,a,d,_in_date)
values('$new_log_no','$a','$d','$in_date')";}
の部分のSQLに対し
pg_query($con,$sql);
を設定するとテーブルにデータを追加することが出来ました。
しかし作成されたデータは中身が空でしたorz
insertが動いてるのでPHPとデータベースの連携は取れてると思います。
>>454
Loaded Modulesを調べた所次の通りの結果でした。
mod_php5, mod_setenvif, mod_so, mod_auth, mod_access,
mod_alias, mod_userdir, mod_actions, mod_imap, mod_asis,
mod_cgi, mod_dir, mod_autoindex, mod_include, mod_status,
Momod_negotiation, mod_mime, mod_log_config, mod_env, http_core
0457nobodyさん
2008/02/29(金) 10:18:45ID:???白紙のときにブラウザの機能でソース見るとどうなってるとか
いろいろやってんのかな
0458nobodyさん
2008/03/05(水) 16:03:25ID:???言っていたものですがa+モードとファイルロックのタイミングで
何とか実現できました。
その後に続くwモードのファイルーオープンで
ログ数を調整しようと思ったのですが
この処理を付けるとログが全部消えてしまいます。
何か間違えていますか?
0459458の続き
2008/03/05(水) 16:05:57ID:???$delfilename = ('card-walin.txt');
$dellines = file($delfilename);
$delcountlines = count($dellines);
$yojyou = $delcountlines - 2;
$delhandle = fopen($filename, "w");
$delnewlog = "";
flock($delhandle,LOCK_EX);
for ($i = $delcountlines; $i <= $yojyou; $i--) {
array_unshift($delnewlog, $dellines[$i]);
}
fwrite($delhandle,$delnewlog);
flock($delhandle,LOCK_UN);
fclose($delhandle);
0460458の改正
2008/03/05(水) 16:41:48ID:???ログ二行以上ならログの先頭から余剰分消していくと言う感じで
//指定行数以上のログの削除
$delfilename = ('card-walin.txt');
$dellines = file($delfilename);
$delcountlines = count($dellines);
if ($delcountlines > 2) {
$yojyou = $delcountlines - 2;
} else {
$yojyou = 0;
}
$delhandle = fopen($delfilename, "w");
flock($delhandle,LOCK_EX);
$delnewlog = "";
for ($i = $delcountlines; $i <= $yojyou; $i--) {
fwrite($delnewlog, $dellines[$i]);
}
flock($delhandle,LOCK_UN);
fclose($delhandle);
0461nobodyさん
2008/03/05(水) 16:42:58ID:bSWg3SQNこの書き方だとファイル名test.phpを他の名前にするたびに$this_script_nameを書換えないといけません
ファイル名を書換えてもソースを変えずにフルパスを取得する書き方を教えてください
$this_script_name = 'test.php';
$full_path = ereg_replace($this_script_name ,'' ,$_SERVER['SCRIPT_FILENAME']);
0462nobodyさん
2008/03/05(水) 16:58:07ID:OQixiW/qググってみると”必要ファイルをコピーして ini_set や .htaccess を使えば良い”
との事ですが、どこまでが必要ファイルなのか良く分かりませんでした
(ローカルにインストールしたPEARディレクトリ丸ごとホームディレクトリにコピーなのか
installコマンドでダウンロードしたファイルだけコピーなのか)
質問は最初の一行の通りなのですがPEARを使うにはどのファイルが必要なのでしょうか?
0464nobodyさん
2008/03/05(水) 17:16:55ID:bSWg3SQNおおお できました
これだけで出来るとわ・・・
ありがとうございました
0465nobodyさん
2008/03/08(土) 00:22:24ID:???場合によっては重複しませんか?
if ($_POST['delete']) {
for ($i = 0; $i < count($lines); $i++) {
$items = explode("\t", $lines[$i]);
if ($items[0] == $_POST['delradio'] && $items[4] == $_POST['delkey2'] || $items[0] == $_POST['delradio'] && 'masterpass' == $_POST['delkey2']) {
array_splice($lines, $i, 1);
}
}
}
0466nobodyさん
2008/03/08(土) 07:01:18ID:???if (isset($_POST['delete']) && $_POST['delete']) {
foreach ($lines as $key => $value) {
$items = explode("\t", $value);
if ($items[0] == $_POST['delradio'] && ($items[4] == $_POST['delkey2'] || 'masterpass' == $_POST['delkey2'])) {
unset($lines[$key]);
}
}
}
書き込みの部分を見ないとなんとも言えない
0467466
2008/03/08(土) 11:35:25ID:???$deletionlogname = ('card-walin.txt');
$deletionloglines = file($deletionlogname);
$deletioncountloglines = count($deletionloglines);
$deletionlognumbers = $deletioncountloglines - 1;
$deletionfopen = fopen($deletionlogname, "w");
flock($deletionfopen,LOCK_EX);
for($i=0; $i<$deletionlognumbers; $i++){
$deletionlogitems = explode("\t", $deletionloglines[$i]);
if($deletionlogitems[0]==$_POST['deletionradio'] && $deletionlogitems[3]==$_POST['deletionkey'] || $deletionlogitems[0]==$_POST['deletionradio'] && 'masterpass'==$_POST['deletionkey']){
continue;
}else{
fwrite($deletionfopen,$deletionloglines[$i]);
}
}
flock($deletionfopen,LOCK_UN);
fclose($deletionfopen);
}
0468nobodyさん
2008/03/08(土) 11:41:55ID:???何これ
0469465
2008/03/08(土) 11:42:09ID:???んでこれは記事の固有IDとパスが一致した行を削除と言う流れで
書いてるんですがどうも訳わからん記事まで削除されてしまいます。
>>465の質問とあわせてアドバイス頂けないでしょうか?
0471nobodyさん
2008/03/08(土) 11:44:26ID:???0472465
2008/03/08(土) 11:44:56ID:???ログの並びはこんな感じです。
0473465
2008/03/08(土) 11:46:30ID:???POST['deletionradio']が記事の固有IDになります、
説明不足ですいません。
0474nobodyさん
2008/03/08(土) 11:51:30ID:???0475465
2008/03/08(土) 11:56:53ID:???その部分もしログが0だった場合とか書いてませんね、迂闊でした。
ログの記事数のカウントが0から始まるのでそうやってみたのですが・・・・・
0476nobodyさん
2008/03/08(土) 12:01:17ID:???0477465
2008/03/08(土) 12:06:56ID:???例えば記事が3つあって、3つめの記事で固有ID3の記事を削除したら
1つめの記事も同時に消えたりします。
0478nobodyさん
2008/03/08(土) 12:08:50ID:???0479465
2008/03/08(土) 12:17:38ID:???今試したら記事3つのログで2つめの記事消したら
3の記事も同時に消えました。
つかその後、削除ボタン押したら全部消えたw
どうも記事固有IDとパスワード一致しなかった場合書き換えしないと言う
処理が抜けてたようです。
ただこれを直しても記事の同時消えが直る気がしない・・・・
ロジック的には大体上にあげたプログラムである程度あってるのでしょうかね。
0480nobodyさん
2008/03/08(土) 12:26:00ID:???フラグ変更することをお薦めする。
0483nobodyさん
2008/03/08(土) 14:14:06ID:???0485nobodyさん
2008/03/08(土) 14:46:24ID:???||と&&の使い方を覚えよう
466でも書いたけど(最初のifで要らん部分あるけどw)
ループ中にある
if ($items[0] == $_POST['delradio'] && $items[4] == $_POST['delkey2'] || $items[0] == $_POST['delradio'] && 'masterpass' == $_POST['delkey2']) {
これは変です(処理的には通るけど)
if ($items[0] == $_POST['delradio'] && ($items[4] == $_POST['delkey2'] || 'masterpass' == $_POST['delkey2'])) {
やりたい事は多分これ
んで、POST内容は意図したものがきてるの?
0487465
2008/03/08(土) 16:30:22ID:???$items[4]がパス格納部じゃなくて$items[3]でした・・・・・・・・
今から皆さんにご指摘頂いた部分の修正に入ります、
本当にすいませんでした。
0489465
2008/03/08(土) 16:38:20ID:???0490nobodyさん
2008/03/08(土) 17:05:38ID:???http://2ch.pne.jp/img/jpg/w_h/img_cache_d_180941_1_1204957189_jpg.jpg
【ユビキタス銀河】 詐欺師プログラマー 武田洋幸
http://pc11.2ch.net/test/read.cgi/antispam/1204457908/l50
0491nobodyさん
2008/03/08(土) 17:42:02ID:???もう一度書き込まれてしまうのですがこれを防止するのは2重書き込み防止処理だけでいいのでしょうか?
これだとたまに別の人が書き込んだ後に更新押した場合
書き込まれちゃいますよね。
皆さん過去ログの内容走査処理したりしてるのでしょうか?
0493nobodyさん
2008/03/08(土) 18:01:26ID:???0494nobodyさん
2008/03/08(土) 18:26:21ID:???b.php←post先
c.php←投稿完了しました表示
b.phpで投稿完了したら
header('Location : http://example.com/c.php');
これでa.htmlまで戻るとかで戻らない限り2重投稿はある程度防げる
0495nobodyさん
2008/03/08(土) 18:29:46ID:???html作成せずにphp1つだけで全部やろうとしてもややこしそうですね・・・・・
0498nobodyさん
2008/03/08(土) 23:16:31ID:???なんかリファレンス読んでも見つからないのですが。
0499nobodyさん
2008/03/09(日) 01:35:03ID:BZEq18rGその際にをtarget.phpへ送るリファラを http://example.com とするにはどうしたらいいのでしょうか。
過去ログを探して、
ヘッダに ""Referer: http://example.com\r\n" を追加すればいいと書いてあったのですが、
どのように追加したらいいのかがわかりません
location みたいな書き方が思い浮かんだのでやってみましたができませんでした。
正しいやり方を教えてください。お願いします。
-------------------------------------
【get.php】
<?php
header("Referer: http://example.com\r\n");
?>
<iframe src="target.php">
</iframe>
-------------------------------
【target.php】
<?php
echo $_SERVER["HTTP_REFERER"];
?>
-------------------------------
get.phpの実行結果
http://****.jp/get.php
0500nobodyさん
2008/03/09(日) 02:10:54ID:???【get.php】
<?php
echo '<iframe src="target.php?referer='.$_SERVER["HTTP_REFERER"].'"></iframe>';
?>
【target.php】
<?php
echo $_GET["referer"];
?>
0501nobodyさん
2008/03/09(日) 02:31:20ID:BZEq18rGせっかく答えていただいたのに恐縮ですが、
それはget.phpで取得したリファラをtarget.phpへgetメソッドで渡す方法ですよね
私が知りたいのは、
get.phpでtarget.phpを開くけれども、
target.phpで取得されるリファラはget.phpではなく、http://example.com にしたいということなのです
印象の良くない言葉なので使いたくはなかったのですが、つまり、リファラ偽装ということです
書き方悪くてすいません
0502nobodyさん
2008/03/09(日) 02:41:06ID:???http://example.com
これは固定値かそれともget.phpで取得できる値かどっち?
get.phpで取得するリファラの値なら方法は無いよ?
get,php内でgetのリクエストをtarget.phpに宛てに投げて
その時のヘッダにリファラ偽装して渡すとかなら可能だけど
0503nobodyさん
2008/03/09(日) 03:08:23ID:BZEq18rG説明不足で本当にすいません
固定値です
0504nobodyさん
2008/03/09(日) 04:55:14ID:???ファイルに対してアクセスあった場合
強制的に.htaccessとかでSetEnvとかかなぁ・・・
もしiframeのが別のサイトなら
getのリクエスト投げた方が早い
0505nobodyさん
2008/03/09(日) 05:16:16ID:???0はNULLやfalseと判定されますか?
その変数を変数-1としても-1とはならない?
0506nobodyさん
2008/03/09(日) 05:24:57ID:???変数=0
変数=変数−1としたら変数の中身は−1になる。
0507nobodyさん
2008/03/09(日) 05:29:10ID:???0508nobodyさん
2008/03/09(日) 05:31:25ID:???0509nobodyさん
2008/03/09(日) 14:05:48ID:BZEq18rGいろいろなアドバイスありがとうございます
target.phpが別のサイトなら、
target.phpのソースは
<?php
echo $_SERVER["HTTP_REFERER"];
?>
なのは弄りようがないわけですが、
target.phpの $_SERVER["HTTP_REFERER"]の値をhttp://example.comであると認識させるためには、
get.phpからどうやってgetのリクエストを投げればいいのでしょうか
0510nobodyさん
2008/03/09(日) 14:17:24ID:???GETと環境変数は別
0511nobodyさん
2008/03/09(日) 14:34:13ID:BZEq18rGありがとうございます
つまり、getでリクエスト投げても、相手で表示される環境変数は変わらないわけですよね
どうすれば
get.phpでインラインフレームでtarget.phpを表示し、
target.phpの $_SERVER["HTTP_REFERER"]の値をhttp://example.comtにできるのでしょうか
やり方がさっぱりわからないのです
0512nobodyさん
2008/03/09(日) 15:24:27ID:???getでリクエスト投げる時にリファラ偽装すれば
リファラには固定値を入れる事ができる
だがインラインフレームでやるのは無理
それをインラインフレームでやる必要あるの?
どうしてもやりたいなら
.htaccessにSetEnvってのがあって
それを使ってtarget.phpにアクセスがあった場合
強制的にリファラを書き換えてやれば良い
0513nobodyさん
2008/03/09(日) 16:02:31ID:BZEq18rGインラインフレームでしようとしていた理由は、
自分がやりたいことを考えた時に一番実現しやすそうだと思ったからです
それが無理ならばインラインフレームでやることはありません
>getでリクエスト投げる時にリファラ偽装すれば
ここのやり方を教えてもらえないでしょうか
getはわかりますが、リファラ偽装の部分がわからないのです
0514nobodyさん
2008/03/09(日) 16:26:44ID:???pearのhttp_requestかcurlが楽じゃないかな
普通にfsockopenとかでopenして投げる事もできるけど
<?php
$request .= "GET / HTTP/1.0\r\n";
$request .= "Host: localhost.jp\r\n";
$request .= "Content-Type: application/x-www-form-urlencoded\r\n";
$request .= "Accept: */*\r\n" .
"Referer: http://hogehoge.jp/\r\n" .
"User-Agent: DoCoMo/2.0 Fa2(c100;TB;W28H15)\r\n";
$request .= "\r\n";
$request .= "\r\n";
$fp = fsockopen("yahoo.co.jp", 80, $errno, $errstr, 30);
fputs($fp, $request);
$response = "";
while (!feof($fp)) {
echo fgets($fp, 4096);
}
fclose($fp);
?>
こんな感じでやふーのトップをもってこれる
0515nobodyさん
2008/03/09(日) 16:49:24ID:BZEq18rGありがとうございます
私のくどい質問に回答続けてくれた方に感謝します
0516nobodyさん
2008/03/10(月) 01:54:10ID:HGPlOVh9スレッド毎にテーブルを作成し、そのテーブルにコメント(&投稿者名など)を記録、
すべてのテーブルを管理するテーブルに最終投稿日時などを記録して、スレッド順位などを決めます。
以下、コメントを投稿した時の部分のスクリプト。
$comm = addslashes($_POST['comm']); //コメント
$id = addslashes($_POST['id']); //テーブルID
$name = addslashes($_POST['name']); //投稿者名
if($_POST['sage'] == NULL){$sage = 0;} else {$sage = 1;}
if($name == NULL){$page_disp = "名前を入力してください。";
} else {
if($comm == NULL){$page_disp = "本文を入力してください。";
} else {
insert_comment($id,$name,$comm,&$seq,$res_dbcon,&$result); //スレッド(テーブル)にコメントを書き込み
if($result == FALSE){$page_disp = "投稿に失敗しました。";
} else {
update_temp_table($id,$sage,$seq,$res_dbcon,$result);//管理テーブルに投稿日時などを記録
$page_disp = "投稿しました。";}}}
PCからのアクセスと、DOCOMO、auからは期待した通りの動作をしていますが、softbank携帯からのみ、動作がおかしくなっています。
症状としては、$name、$commといった変数を受け取れず(?)、テーブルには各カラムのNULLになったレコードが追加される。
テーブルの更新、レコードの追加は行われているので、CURRENT TIMESTAMPなどはちゃんと入っている。
管理テーブルは更新されているので、各変数のNULLのチェックは通過している。
という状態です。スクリプト上におかしい箇所などあるでしょうか?
ちなみにPHP、MySQLの勉強は先月始めたばかりで、この掲示板のスクリプトは、本などを読んで作ったオリジナルのものです。
よろしくお願いいたします。
0517nobodyさん
2008/03/10(月) 02:14:45ID:???function insert_comment($tbl_id,$name,$comm,$seq,$dbcon,$result){//コメント追加
$l_sql = "SELECT count( * ) FROM `".$tbl_id."`";
$l_result = mysql_query($l_sql,$dbcon);
$l_row = mysql_fetch_array($l_result);
$seq = $l_row[0] + 1;
$f_host = gethostbyaddr(getenv("REMOTE_ADDR"));
$sql = "insert into `".$tbl_id."` (c_seq, c_time, c_name, c_comm, c_host, c_del_flg) VALUES (".$seq.", NOW( ), '".$name."', '".$comm."', '".$f_host."', '0' )";
$result = mysql_query($sql,$dbcon);
}
function update_temp_table($tbl_id,$sage,$seq,$f_dbcon,$f_result){//スレッド更新(管理テーブル更新)
if($seq == 300){ $del_flg = 1;} else { $del_flg = 0;} //規定レス数に達したスレは終了
$sql = "update t_temp_table set c_count_comment = ".$seq." , c_del_flg = '".$del_flg."' where c_table_id = ".$tbl_id;
$f_result = mysql_query($sql,$f_dbcon);
}
0518nobodyさん
2008/03/10(月) 02:20:25ID:???softbankのチェックした機種は何?
多分表示側の問題だとは思うけど
それと、1スレッド1テーブルはやめた方が良い
ファイルベースの設計なら1スレッド1ファイルの方が良いが・・・
0519516
2008/03/10(月) 02:40:11ID:???ログ見てみたらソフトバンクだな、ってのが分かったというだけで。
しかも、その方が問い合わせフォームからメールも送ってくれたんだけど、
それがまた見事に文字化けしていて全く見れない状態です。
(これもまたDOCOMO、auは正常動作。)
1スレッド1テーブルが良くないというのは、パフォーマンスとかCPU占有とかいう話でしょうか?
素人考えで、一つのテーブルのみが異常にレコード数多くなるよりいいかな、と思ったのですが…
0520nobodyさん
2008/03/10(月) 02:58:57ID:???0521nobodyさん
2008/03/10(月) 03:56:42ID:???旧Vodafone機種とかにはまともに送れないのとかあるからねー
そこらへんが携帯対応のめんどくさい所
1つ要素追加しようとした時に全部のテーブル構造変えるほうが手間
あとデフォ設定でCPUがP4の3Gでメモリ2Gなマシンでも
1テーブル2000万件とかいれても平気だから1テーブルに入れろ
DB設計は色々と勉強した方が良いよ
0522nobodyさん
2008/03/10(月) 05:18:59ID:???2ヶ月ぐらいやってるけどなにをどうやっていいやら・・・
とりあえずHTMLを少しやってたのでPHPに挑戦してみたんだが
難しい。そして、どう使うのかがよくわからん。
PHPスーパーサンプル集って本を買って本の進行通りにやってるが
だからなに?って感じでおわってしまう。
まず最初にこんにちはを画面に表示させた。うむ。
フォームはあらゆるところで使われるので重要ということで
フォームもやってみた。うむ。
いま、フォームで送信されたデータを関数で色々条件をつける
もしくは処理をするってのやってるんだけど、それも具体的によくわからん。
説明には、パスワードを入力とか普段サイトで使ってるようなことで使う
みたいなことは書いてあったけど、実際自分でつかえるかなーと疑問。
何をどうしたらいいか、もっと分かりやすい本、もしくはページはないか
しってたらお願いします。できれば、私はこう使ったというのを実体験で
いってくれると分かりやすいです。m(_ _)m
0523nobodyさん
2008/03/10(月) 06:26:17ID:???その手の質問きたら俺は毎回ここをオススメしてる
宣伝と思われそうだがw
http://www.phppro.jp/school/phpschool/
初心者には普通にオススメ
あと何か作ってみたいものを見つけるのが良いんじゃないかな?
んでこれを作るには何が必要で
どんな事をしなきゃいけないのかとか
あとは同じようなスクリプトは
どんな風にしてるのかを調べるのも良いかな
0524nobodyさん
2008/03/10(月) 18:52:10ID:???すごくよかったですm(_ _)m
私が買った本より説明が分かりやすく理解しやすかったです。
とりあえず、このページを読破し実際にやってみようと思います。
0525nobodyさん
2008/03/11(火) 03:36:14ID:xCa4blgrobject(stdClass)(1) { ["array"]=> "test"}
みたいな感じでオブジェクトで返ってきました。
配列arrayの中の"test"という文字列を取り出すためにはどうしたらよいのでしょうか?
ちなみにjson_decode()です。upgrade.phpを利用してassocをTRUEにしているのに配列ではなくオブジェクトで返されてしまって困っています。
0526nobodyさん
2008/03/11(火) 03:42:27ID:???0527nobodyさん
2008/03/11(火) 15:31:16ID:xCa4blgrありがとうございます。
0528nobodyさん
2008/03/11(火) 20:58:03ID:LKhchWrtしているのですが、フィード内の <content:encoded> といったエレメントが
読み込まれません。
どうも「:」がエレメント名に含まれていると、PHPはそれを見落としてしまうよう
なのですが、同じような経験をされた方いらっしゃいますでしょうか?
0529nobodyさん
2008/03/11(火) 22:34:53ID:???今度の4月から大学(情報工学科)に通うんですけど
教授とかに聞いても大丈夫ですよね?
0530nobodyさん
2008/03/11(火) 23:38:41ID:???0531nobodyさん
2008/03/12(水) 01:15:12ID:???↓でええんか?
<?php if(false){ ?>
…
<?php } ?>
0532nobodyさん
2008/03/12(水) 01:22:22ID:???...
<?php endif; ?>
なんでこの書き方って普及してないの?
0534nobodyさん
2008/03/12(水) 09:26:44ID:???外部からのアクセスでPHPに情報を送り、それをPHPが一度Textファイルに保持した上で
他のアクセスがPHPからそれを受け取るという処理を行っています。
チェックは連続して行っていて情報が無ければ「NoEntry」という結果を返しています。
(保持した情報は消えます)
(処理中、データはロックしています)
今現在そのチェック処理を2秒に1回の頻度で行っているのですが、
一般論の範囲でPHPはどれくらいの負荷までなら普通に耐えられるのでしょうか?
可能であれば上記のチェック処理を1秒に2・3回行いたいと思っています。
使用しているサーバはさくらインターネットのプレミアムコースです。
PHPのバージョンは、、すみません。詳しく分からないのですが初心者解説サイトの命令のみ使っています。
2秒に1回のチェックですが、実際にデータを保持し送信するペースは1時間に1回ほどです。
0536nobodyさん
2008/03/12(水) 10:58:25ID:???他のアクセスがあった時点でファイルがあるかチェックするんじゃだめなの?
0537nobodyさん
2008/03/12(水) 11:11:37ID:???繰り返しアクセスしているのは外部のプログラムで、PHPはそれに対して反応を返しています。
PHP内部では繰り返しの処理はしていません。
SaveパラメータでHTTPアクセスされると「A」という文字をPHPが記録します。
LoadパラメータでHTTPアクセスされると、今PHPが保持してる「A」という文字をEchoで返し、「A」は消します。
この時、保持している文字がなければ「NoEntry」を返します。
現状2秒に一度Loadパラメータでアクセスしています。(文字があるかチェック)
その間に複数のSaveパラメータでアクセスされると「A,B,C」と同時に保持して、
Loadパラメータが来るごとに、古いものから順に1文字ずつ返します。
ただ通常、1時間に1〜2回、多くても10回ほどのSaveパラメータのアクセスしか無いため
ほとんどはLoadパラメータのアクセスを受信し続けている状態です。
このLoadパラメータを、現状の2秒に1度から、1秒間に2〜3回にしたいなと考えております。
0539nobodyさん
2008/03/12(水) 11:28:02ID:???0540534
2008/03/12(水) 11:52:49ID:???やはりPHPの性能はCGIとは比べものになりませんね。
0541nobodyさん
2008/03/12(水) 17:51:48ID:???普通にfwriteとかで作成すればいいのでしょうか?
0542nobodyさん
2008/03/12(水) 19:13:32ID:???0543nobodyさん
2008/03/12(水) 21:40:52ID:???ファイルに書き出したいなら>>542のを使えば良い
表示させるだけならechoなりでhtml書いたのを表示すればいい
0544nobodyさん
2008/03/13(木) 04:03:55ID:???0545nobodyさん
2008/03/14(金) 16:59:59ID:P2EP3hdlループ文を使い値と属性を取得しようとすると、$nameという配列を作る行で
Warning: Illegal offset type となります。オブジェクトの属性と値の取り方を間違えているのでしょうか?
$xml
SimpleXMLElement Object
(
[id] => 2
[title] => hogehoge
[spec] => 500
)
foreach($xml as $a => $b) {
if ($a == 'id') {
$id = $b;
}
if ($a == 'title') {
$title = $b;
}
}
$name[$id] = $title; ←エラー
0546nobodyさん
2008/03/14(金) 17:41:35ID:???print_rよりver_dumpのがオススメ
$idと$titleをdumpする事をおすすめする
var_dump($id,$title);
てかそのループしなくても良いと思うんだが?
$name[$xml->id] = $xml->title;
0547nobodyさん
2008/03/14(金) 19:16:02ID:P2EP3hdlありがとうございます
$name[$xml->id] = $xml->title;
これだと同じエラー内容となりました
ver_dumpしたところ下記のように出てきたのですが、さらにオブジェクトが続いているということでしょうか?
object(SimpleXMLElement)#9 (1) {
[0]=>
string(1) "2"
}
object(SimpleXMLElement)#8 (1) {
[0]=>
string(8) "hogehoge"
}
0548nobodyさん
2008/03/14(金) 19:34:29ID:???XMLを使っていない。使おうとも思わない。
つかうのは外部とのシステムでXMLを
使うことを強制された場合ぐらいだな。
0549nobodyさん
2008/03/14(金) 20:27:50ID:i8C7NkG0<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Gallery</title>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
</head>
<body>
<div align="center">
<br />
<?php include("../../koukoku.php"); ?><br />
<?
$image = "http://***.com/gazou/01/" . $_GET['no'] . ".gif";
if(file_exists($image)){ print "<img src=\"$image\">"; }
?>
</div>
</body>
</html>
こんな感じでhttp://***.com/gazou/01/**.gifをページの真ん中に表示したいのですが画像がされません。
画像がローカルパスなら表示されるのですがどこが悪いのか教えてもらえませんでしょうか?
0550nobodyさん
2008/03/14(金) 20:32:53ID:???よければ教えてください。
echo 45 * 1.4;
echo "<br>";
$a = floor(45 * 1.4);
echo $a;
echo "<br>";
というプログラムで、結果が
63
62
となるんですけど、原因がわかりません…
63が正解なのですが、なぜなんでしょう?
実際は変数が入るので、結果も変動して小数点以下の数値も出るのでfloorしていますが、
なぜかこの数値の時だけ結果にずれが…
0551nobodyさん
2008/03/14(金) 20:54:07ID:???典型的な、浮動小数点誤差の問題だね。
一般的にコンピュータは数値を二進数に変換して処理する。
1.4という数値は二進数では近い数字は表現できても、
1.4そのものは表現できない数値なんだ。(小数点以下が無限に続く)
よって 45 × 1.3999・・・という計算になる。
当然答えも62.9999・・・になる。
あとはechoのとき、62.9999・・・というほぼ63という値なら、
それを63にして表示しているということだろう。
公式サイトにも書いてあるが。
http://www.php.net/manual/ja/language.types.float.php
0552549
2008/03/15(土) 12:13:27ID:???他で聞いてみます 失礼しました。
0554nobodyさん
2008/03/15(土) 17:15:03ID:???$iって$aとかにする事は可能でしょうか?
■ このスレッドは過去ログ倉庫に格納されています