【PHP】下らねぇ質問はID出して書き込みやがれ 77
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/12/08(月) 01:27:39ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
008230です
2008/12/09(火) 08:54:44ID:pNYuh3pRPDOを使っています
mysql_num_rows ←PDOでコレに該当する物がないのです
http://php.plus-server.net/pdostatement.rowcount.html
ココをみると SELECT COUNT(*) 文を発行してから
再度SELECTしろ となっています
2回同じようなSQLを実行しないといけないのですが
遅くなりそうでイヤなのですが
気にしなくていいのでしょうか
if (mysql_num_rows($res) <= 0) { return; }
この判定(ゼロ判定)のためだけに、SELECT COUNT(*)
するのがアホらしいのですが
0083nobodyさん
2008/12/09(火) 09:20:50ID:???0084nobodyさん
2008/12/09(火) 09:27:49ID:???if (mysql_num_rows($res) <= 0) { return; }
この目的は行数を得ることですか?
行数を得る目的ならcount(*)が適切でしょう
しかし、結果セットがない場合はreturnだったら、
pdoのイテレーターでそのまま実装できるのでは?
0086nobodyさん
2008/12/09(火) 10:32:37ID:???0087nobodyさん
2008/12/09(火) 10:37:24ID:???count()は遅いぞ?
単体サーバーで500万件くらいいれると
どんなにフル最適化しても2〜5秒はcountにとられるぞ
ポスグレだけどな…
0088nobodyさん
2008/12/09(火) 11:52:40ID:???0089nobodyさん
2008/12/09(火) 12:12:03ID:6VdqcFEv【PHPのバージョン】php 4.4.6
【連携ソフトウェア】なし
【質問内容】
phpで作られたフリーのカートシステム「zen cart」を利用しているのですが、
クライアントの情報を利用するため、自前で作成したプログラム(log.php)を、index.phpからincludeするように改造しました。
作成したプログラムは、商品のコンバージョンを計るためです。
log.phpの内容
<?
extract($_GET);
extract($_POST);
session_start();
/* セッションに変数を登録 */
$_SESSION['dvd_date'] = date("Y/m/d l H:i:s");
?>
index.phpが呼ばれるとlog.phpが動作して、ちゃんとセッションがサーバーに書き込まれています。
しかし、zen cart で買い物をすると、カートに商品が入りません。おそらく、zen cartの中でもセッションを
使用しているからだと思います。log.phpがzen cartのセッションをクリアしてしまっているせいかも
しれないです。
このようや事象を回避する方法はありますでしょうか?
009030です
2008/12/09(火) 12:30:49ID:pNYuh3pR>if (mysql_num_rows($res) <= 0) { return; }
>この目的は行数を得ることですか?
行数把握が目的ではなく、結果セットが無い場合(該当レコードゼロ)
の場合の対処が目的です
>結果セットがない場合はreturnだったら、
>pdoのイテレーターでそのまま実装できるのでは?
ここが分かりません
どのような記述でしょうか?
0091nobodyさん
2008/12/09(火) 12:34:59ID:???究極の解決方法は
他人が作ったものを使わない!
それはさておき
確実に
session_start();
をよんでるからだろ…これをコメントアウトすれば?
あとセッションが利用しているかしていないかの判定入れて
利用してなければスタートするようにする
0092nobodyさん
2008/12/09(火) 12:47:14ID:???あんまスマートじゃないけど許してね
たとえばこんな感じ
$row = $stmt->fetch();
if (false === $row) return ;
do {
//処理
} while($row = $stmt->fetch());
0093nobodyさん
2008/12/09(火) 12:51:29ID:6VdqcFEvsession_start でやはり初期化されるようですね。
おっしゃるとおりやってみます
サンクス湖
009430です
2008/12/09(火) 12:56:02ID:pNYuh3pRありがとうございます
fetchして判定しようとは思ったのですが
カレントレコードが移動してしまうのでどうしたら
いいのだろうかと模索していました
whileではなく、do while ですね
ありがとうございました
0095nobodyさん
2008/12/09(火) 13:26:32ID:???}
してれば件数0の場合は実行されないからいいんじゃないの?
0097nobodyさん
2008/12/09(火) 14:53:16ID:???0098nobodyさん
2008/12/09(火) 14:54:31ID:???0100nobodyさん
2008/12/09(火) 17:37:02ID:???日本語としては「じっぽん」が正しいが、レッドブックの「とおほん」(×とうほん)も間違いではない
ただ朝鮮人や一部の関西人が良く使う「じゅっぽん」は明らかに間違い
これを使っていると日本人である事を疑われるので気を付けるように
0102nobodyさん
2008/12/09(火) 17:37:28ID:???0104nobodyさん
2008/12/09(火) 18:46:37ID:O9eg0LyY【PHPのバージョン】PHP5.1.6
pecl installでAPC導入したのですがphpinfo()に反映されませんでした。
apache再起動時のエラーログを確認した所
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/apc.so' - /usr/local/lib/php/extensions/apc.so: undefined symbol: zend_compile_file in Unknown on line 0
と出ています。
導入したAPCのバージョンは3.0.19です。
解決策ありましたらご教授よろしくお願いします。
0105nobodyさん
2008/12/09(火) 19:21:43ID:AVrbWSbl少数の比較をしてはならない、
って、解説サイトに書いてあったんだが、そうなの?
0106nobodyさん
2008/12/09(火) 19:22:15ID:???小数○
0107nobodyさん
2008/12/09(火) 19:30:42ID:???0108nobodyさん
2008/12/09(火) 19:36:14ID:???( ゚ω゚ ) /
ハ_ハ ⊂ ノ ハ_ハ
('(゚ω゚`∩ (つ ノ ∩´゚ω゚)')
ハ_ハ ヽ 〈 (ノ 〉 / ハ_ハ
('(゚ω゚`∩ ヽヽ_) (_ノ ノ ∩´゚ω゚)')
O,_ 〈 〉 ,_O
`ヽ_) (_/ ´
ハ_ハ お 断 り し ま す ハ_ハ
⊂(゚ω゚⊂⌒`⊃ ⊂´⌒⊃゚ω゚)⊃
0109nobodyさん
2008/12/09(火) 23:37:38ID:???0110nobodyさん
2008/12/10(水) 12:01:59ID:6u+ZdXWjMySQLのデータを、PHPを用いて表示は出来ましたが、エクセルへ出力となると何から手をつけていいのやら…
オススメの参考資料などありませんか?
ググってもCVS出力というものばかりヒットします
0111nobodyさん
2008/12/10(水) 12:12:05ID:???0112nobodyさん
2008/12/10(水) 12:49:12ID:???0113nobodyさん
2008/12/10(水) 12:52:42ID:???0114nobodyさん
2008/12/10(水) 12:54:11ID:???強制的にセッションを切断したいんだけど
なんか良い方法ある?
0115nobodyさん
2008/12/10(水) 12:55:48ID:???0116nobodyさん
2008/12/10(水) 13:14:41ID:???0119nobodyさん
2008/12/10(水) 16:36:22ID:AE/sV1zeフォルダのなかに、ファイル(データ書込み)をつくり、
そのフォルダを圧縮します。
また、複数人がアクセスすることを考えると、
ファイルには乱数で名前をつける必要があるのでしょうか?
素人ですみませんが
0120nobodyさん
2008/12/10(水) 16:40:54ID:???0121nobodyさん
2008/12/10(水) 17:13:46ID:AE/sV1zeWEB上から申し込んだ人に対して、
個別にファイルをTENPでつくり、
それを入れたフォルダを圧縮したいです。
0123nobodyさん
2008/12/10(水) 17:23:45ID:???0124nobodyさん
2008/12/10(水) 17:48:30ID:IV3o+bU1$partO=$_POST['partO'];
0125nobodyさん
2008/12/10(水) 17:49:16ID:IV3o+bU1$_POST['part78']までです
0127nobodyさん
2008/12/10(水) 18:08:59ID:???配列にセットしたら?
$part = array();
for ($i = 1; $i <= 79; $i++) {
if (isset($_POST["part{$i}"])) {
$part[$i] = $_POST["part{$i}"];
}
}
0128127
2008/12/10(水) 18:12:06ID:???$i <= 78か$i < 79ね
0129nobodyさん
2008/12/10(水) 18:14:47ID:IV3o+bU1ありがとうございます。
$_POST[]の部分に変数が入れられないと思ってましたが、ググってみたら"{}"で入れられるんですね。
0132nobodyさん
2008/12/10(水) 18:19:47ID:IV3o+bU1orz
自分 '' をつけてました。
0133nobodyさん
2008/12/10(水) 18:20:44ID:???$_POST['part' . $i]とかでもいいよ
柔軟に書けます
0134nobodyさん
2008/12/10(水) 19:22:10ID:AE/sV1ze素人なものですみません。
ファイルの圧縮は、例文どおりに書いたらできましたが、
フォルダの圧縮がまったくわかりません。
どの関数を使うのでしょうか?
また、複数人が同時アクセスすると、
フォルダの中には複数のtempファイルが入ってしまうのでしょうか?
個別にしたいわけですが。
0135nobodyさん
2008/12/10(水) 19:31:33ID:???0136nobodyさん
2008/12/10(水) 20:01:42ID:UV6BBIxz<?php
for ($a=0; $a<3; $a++){
print ($a."<br />");
}
?>
↑これで、1行ずつ表示したいんだが、無理?
0138nobodyさん
2008/12/10(水) 20:10:34ID:???フォルダーの圧縮やってみました?
mkdirしてそこに必要なファイルをつっこんでそのフォルダを圧縮 チーン
0139nobodyさん
2008/12/10(水) 20:11:37ID:UV6BBIxzいや、だから、何を試すんだよ?
バカなのかお前
0140nobodyさん
2008/12/10(水) 20:12:12ID:UV6BBIxz1行ずつ、って
ゆっくり表示する、って意味だよ?
0142nobodyさん
2008/12/10(水) 20:18:28ID:???ゆっくり表示するって書いてくれなきゃわからないです。ごめんなさい。
田代砲でサーバ攻撃しながら表示すればOK
0143nobodyさん
2008/12/10(水) 20:19:25ID:???flushとsleep使ったらどうかね
0144nobodyさん
2008/12/10(水) 21:11:51ID:???しっかり守ってるかセキュリティのチェックがしたいのですが
田代砲って配布サイトで拾ってきたもの使っても大丈夫ですか?
0145144
2008/12/10(水) 21:12:46ID:yyzcwK8M0146nobodyさん
2008/12/10(水) 21:24:10ID:???0147nobodyさん
2008/12/10(水) 21:31:58ID:???セキュリティのチェックとか関係ない
0148nobodyさん
2008/12/10(水) 21:42:22ID:???この問題を表示するプログラムって
ちょちょいと作れる?
0149nobodyさん
2008/12/10(水) 21:43:19ID:???0151nobodyさん
2008/12/10(水) 21:49:21ID:AE/sV1ze1)ファイルを動的につくる
2)そのファイルを含む複数のファイルをまとめて圧縮する
この2つをやる例文はないでしょうか?
素人なものですみません
0152nobodyさん
2008/12/10(水) 22:04:50ID:???とりあえず、
フォームで、「nの値を入力させる」
そんで、nが確定するから、
そのときの、出る目のパターンを、
全表示する、って、PHPでできる?
0153nobodyさん
2008/12/10(水) 22:15:04ID:???http://pear.php.net/package/Archive_Zip/
0154nobodyさん
2008/12/10(水) 22:33:18ID:???http://jp.php.net/manual/ja/function.ziparchive-open.php
0155nobodyさん
2008/12/10(水) 22:56:27ID:???このサイトわかりやすい
0156nobodyさん
2008/12/10(水) 23:00:34ID:???0157nobodyさん
2008/12/10(水) 23:02:09ID:???このページに、
「セッションというものは、クッキーを利用している」
って書いてあるけど、別にクッキーを使わない
セッションというものも、あるんですよね?
0159nobodyさん
2008/12/10(水) 23:33:40ID:???0160nobodyさん
2008/12/10(水) 23:36:40ID:AE/sV1ze素人ですみません。
zlib というので、やりたいのですが、
フォルダにするやり方がどうしてもわからないので断念
zip関数というので、できそうな気がしましたが、
サーバーを調べるとPHP4だったので、たぶん使えないだとうと断念
Pear でやれるか検討中。
という感じなんですが、できるでしょうか?
0161nobodyさん
2008/12/10(水) 23:45:17ID:???0162nobodyさん
2008/12/10(水) 23:46:50ID:???0163nobodyさん
2008/12/11(木) 00:15:49ID:2wImFGsHセッションは、
(1)セッション+クッキーで管理する
(2)セッション+URLにセッションIDを埋め込む
この2つしかやり方はない、であってる?
0164nobodyさん
2008/12/11(木) 00:25:16ID:???URL埋め込み以外にもフォームのhiddenの場合もあるし
0165nobodyさん
2008/12/11(木) 00:40:13ID:2wImFGsH(2)URL埋め込み
(3)hidden
おおまかに言って、この3種類?
0166nobodyさん
2008/12/11(木) 01:13:02ID:vCW1WzQVhttp://jp.php.net/manual/ja/zip.examples.php
ここに書いてある最初の例を、ローカルで試すと、
書き込んだファイルの拡張子の後に、
乱数(時間?)の数字がつきます。
それも、ちょっとまずく、
個別のアクセスした人に、個別のファイルをダウンロードさせたい
わけです。
数字なしにすれば、いいでしょうか。
その場合、同時アクセスのリスクはあるでしょうか?
素人ですみません
0169nobodyさん
2008/12/11(木) 02:16:43ID:vCW1WzQVtime()を外すと、大丈夫でした。
あと、アクセスした人個別にファイルをつくり、
その個別ファイルをダウンさせたいわけです。
なので、同時にアクセスされると不具合が起きるような気がして
ずっと心配しています。
そういう場合はプロの方はどうするのでしょうか?
同時に1人しかアクセスしないように制限するとか・・・
0170nobodyさん
2008/12/11(木) 02:19:15ID:???0171nobodyさん
2008/12/11(木) 02:37:05ID:???付与したいんでないか?
0172nobodyさん
2008/12/11(木) 04:15:55ID:2wImFGsH本や解説サイトによって、
関数の引数の
値渡しと、参照渡しで、
どっちが多く使われるか、
意見が分かれているのだが、
どっちがポピュラーなのか?
0173nobodyさん
2008/12/11(木) 04:21:57ID:???理論的なことばっか質問するな
答えがほしいなら学校へ行け
技術的に詰まったら質問に来い
0174nobodyさん
2008/12/11(木) 04:23:18ID:???,r´⌒ヽ,⌒ヽ,ヽ
(⌒)、 .人 λ\、 ._____
\. \ 、 ヽ./ ー ー\
|\ \ ヽ./ ( ●) ( ●)
| \ \ / (__人__) \ はいはい、どーもすみませんでした
|. \ | ` ⌒´ |
. |. |.\_ノ\ /
. |. | | \______/
. | ) .| . . ̄ ̄
. | | .|
| |.| .|
. | | .| .|
/ / / ヽ,
(__ノ ヽ、__つ
0175nobodyさん
2008/12/11(木) 08:01:27ID:???0176nobodyさん
2008/12/11(木) 08:09:54ID:???0178nobodyさん
2008/12/11(木) 21:02:23ID:yxR9XmFMデータの構造は、このようになっていますが、
どのようなデータ処理が一番適切でしょうか?
adfadfasdfasf1 384 Thu Dec 11 10:41 data1
(himitu1)
subdata1
adfadfasdfasf2 356 Thu Dec 11 05:20 data2
(himitu2)
subdata2
adfadfasdfasf3 361 Wed Dec 10 20:32 data3
(himitu3)
subdata3
・
・
・
このような構造のデータが可変で続きます。
上記の例でいえば、data1、subdata1、data2、subdata2、・・・の順で取得してDBに突っ込みたいと思っております。
一つのデータが一行で収まっていれば、explodeと簡単なのですが、
一つのデータが複数行になってしまっているので、処理が複雑になってしまいます。
何かよい知恵をお貸し下さい。お願いします。
0179nobodyさん
2008/12/11(木) 21:05:45ID:???0180nobodyさん
2008/12/11(木) 21:43:42ID:???悩むとするならこの行だろうけど、
項目が減ったり増えたりする訳じゃないのだから
頑張って正規表現だな。
まず、日付を先に取り出すのを考えて、日付取り出しちゃえば
後はすげー楽だと思う。
7種類の曜日のどれか、スペース、12種類の月のどれか、スペース
数字2桁、スペース…
正規表現に当てはめるのは簡単だけど、書くのは凄いめんどくさそうだね。
0181nobodyさん
2008/12/11(木) 22:37:36ID:yxR9XmFMアドバイスありがとうございました。
行での正規表現でのアドバイス参考になりました。
ただ、3行ずつ分けるって、結構大変そうですね。
やはりフラグを多用し、プログラムがぐちゃぐちゃになりそうなので、
そこはちょっと困ったところです。もう少し考えてみます。
どうもありがとうござました。
■ このスレッドは過去ログ倉庫に格納されています