【PHP】下らねぇ質問はここに書き込みやがれpart20
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/04/28(金) 04:12:33ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart34【php】
http://pc8.2ch.net/test/read.cgi/php/1142903954/
【PHP】下らねぇ質問はここに書き込みやがれ Part19
http://pc8.2ch.net/test/read.cgi/php/1144513878/
過去スレは>>2-3あたり
0332nobodyさん
2006/05/07(日) 12:33:58ID:???0333nobodyさん
2006/05/07(日) 12:42:19ID:???0334nobodyさん
2006/05/07(日) 12:43:23ID:???list($y, $m, $d) = explode('-', $_SERVER['QUERY_STRING']);
こんなん駄目?サニタイズが面倒か
0335nobodyさん
2006/05/07(日) 13:52:42ID:???$sql="SELECT * FROM tbl WHERE name LIKE %:name%";
$stmt->paramBind(":name")
みたいな事をしたいんだけど、うまくいかない。
%%ってどういう扱いになるの教えて
0336nobodyさん
2006/05/07(日) 14:46:29ID:???シングルコーテ????
0337nobodyさん
2006/05/07(日) 15:35:02ID:???レッツが古いって言っても主に全体の作り方とか設計とかの話だから
個々の記述については使えるとこは使えるんじゃないかと思うよ。
その辺はもう個人の好き好きだから。
個人的には「8桁の数字」ってのが扱いにくいから「-」区切りとかにして
strtotimeでUNIX秒変換しちゃうけど、これはこれでアリなんじゃないのかな。
まー自分なら
if(preg_match('/^(\d{4})(\d{2})(\d{2})/', $qry, $m)) {
$today = getdate(mktime(0,0,0,$m[2],$m[3],$m[1]));
}
とか書いちゃいそうだけど。
0338nobodyさん
2006/05/07(日) 15:46:21ID:???%はファイル名のワイルドカード「*」とほぼ同じ。
それより、文字列データはちゃんと '〜' で括らないと動くわけがない。
0339nobodyさん
2006/05/07(日) 16:53:03ID:???0340nobodyさん
2006/05/07(日) 16:57:44ID:???0341nobodyさん
2006/05/07(日) 17:12:12ID:???先にeregでチェックしてる時点でレッツのも速度的にはあんまり速くないし。
それが無ければsubstrの方がやっぱ速いと思うよ。
ただ、ereg+substr版は桁と配置の情報が何箇所にも分散してるから
うっかりミスでバグを出しやすいのがイヤだな〜と思う。
0342nobodyさん
2006/05/07(日) 17:30:51ID:???0343nobodyさん
2006/05/07(日) 17:42:18ID:???これが50万回ループの中に入ってる処理とかならさすがに神経質になるけど。
ま、そういうボトルネックになる場所でタココード書かないために
普段から意識しておくのは悪いことじゃないと思う。
0344nobodyさん
2006/05/07(日) 18:14:39ID:???さっきのクエリチェックくらいなら、(phpMyAdmin風)0.0001も変わらんかもしれんけどね。
携帯サイトとかだとさ、出力するHTMLを極限まで少なくしたいから(パケット節約)
GETでURL付加やHIDDENでPOSTしたりとか、そういう時にクエリを無茶して
処理側で頑張ってる場合が多いと思う。
んで処理側が遅いと、同時接続とかあった場合に一瞬でも待たせることになり
相手がナローバンドで尚且つ移動端末な「携帯」だと、お客を逃す場合もあるかもしれない
0345nobodyさん
2006/05/07(日) 18:27:44ID:???まぁ、言いたいことは判らなくもないし、異論は無いけど、
うちでやっているサイトはどれも、ここ最近は全てパケとか一切無視でやってるよ
まぁau公式サイトがほとんどだけどw
0346nobodyさん
2006/05/07(日) 18:29:15ID:???ユーザの声を聞く気のないサイトならそれでも別にいいんじゃね?
どんだけ遅かろうとパケ代かかろうと。
大手なんてどこも評判良くないしね。
0347nobodyさん
2006/05/07(日) 19:00:15ID:???0348nobodyさん
2006/05/07(日) 19:11:19ID:???docomo は第2世代(mova)がまだ多いからなあ
voda はウンコということしか分からん
0349nobodyさん
2006/05/07(日) 19:15:35ID:???利益の出る様なコンシューマサービスの提供者側にはなれない罠
勝手サイトで好き勝手にやってろって幹事
0350nobodyさん
2006/05/07(日) 19:24:02ID:???0352nobodyさん
2006/05/07(日) 20:41:55ID:IxA6YfPNif (getlastmod() != FALSE) {
header ("Last-Modified: " . date("D, d M Y H:i:s", getlastmod()) . "GMT");
}
しかし出力結果は[ Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT
]になってしまいます。
ですがエラーは出ていません。
どうしたらよろしいのでしょうか?
0353nobodyさん
2006/05/07(日) 20:53:14ID:???スクリプトの更新日なのであれば
filemtime($_SERVER['SCRIPT_FILENAME'])
のほうが確実じゃまいか。
0354352
2006/05/07(日) 21:00:01ID:IxA6YfPN現在のスクリプトの最終更新時刻を取得するのに、getlastmod() と filemtime() って区別する必要はあるのでしょうか?
わざわざ $_SERVER["SCRIPT_FILENAME"] までしても filemtime()の方が確実な理由ってを教えて頂けませんでしょうか。
0355352
2006/05/07(日) 21:04:08ID:IxA6YfPN同じUnixタイムを吐くはずなのになんでだろ??
0356nobodyさん
2006/05/07(日) 21:26:41ID:???http://jp.php.net/manual/ja/function.getlastmod.php
のUser Contributed Notes嫁や
0357352
2006/05/07(日) 21:48:15ID:IxA6YfPNありがとうございました。
0358nobodyさん
2006/05/07(日) 23:26:35ID:???俺、8000円ぐらいで小さな奴使ってるんだけど、ノートと本を広げたらもう
何も置けないぐらい小さいんだよ。
何かお勧めある?抽象的だけど、ディスプレイが二つぐらい置けるような大きさキボンヌ
0359nobodyさん
2006/05/07(日) 23:35:30ID:???0361nobodyさん
2006/05/07(日) 23:51:05ID:???モニターを並べたいのか?
両袖机でも使えば?黒壇使ってたらベストかもな
おれは脇机を利用してるけどな
0362357
2006/05/07(日) 23:58:23ID:???いや、マジでスレ違いごめんね。スレ違いの純情じゃ済まされないのは分かってる。
なるほど、脇机もひとつの手だな。ちょっとSOHO系のスレ探してみる。
0363nobodyさん
2006/05/08(月) 00:50:39ID:OM28BwPFどういう風にしたらよいでしょうか
0364nobodyさん
2006/05/08(月) 01:26:21ID:???PHPや他の言語でもいいですが、最終的にOSが提供している関数のようなものを
呼び出すことになるのですが、OSは行数のカウントやそれぞれの改行位置まで把握していないので
当然ながらそれに該当する関数(のようなもの)を持ち合わせていません。
ファイルの最後の方から一定のサイズづつ読み出して、
そこに改行コードが含まれているかをチェックし、それが見つかるまで繰り返す。
見つけたらそれまでに読み出したものを返す、というのが具体的な手法になります。
ファイルサイズが小さければ、先頭から調べる(一行だけ読み込む関数をファイル終端まで繰り返す)というのもありでしょう。
0365nobodyさん
2006/05/08(月) 02:45:41ID:???そこそこなサイズなら
$a = file("file");
echo $a[count($a) - 1];
とか
0366363
2006/05/08(月) 03:20:12ID:???出来ました!(TдT)アリガトウございました!
いろいろサイトを回ってみたんですがずっと分からなくて困ってました
ほんとにありがとうございました
0367nobodyさん
2006/05/08(月) 04:43:58ID:???時々、リターンコードが成功を返しているのに、
画像ファイルが生成されていないことがあります。
これはimagemagickが不安定なのでしょうか?
同じような現象に会った人、いますでしょうか?
0369nobodyさん
2006/05/08(月) 11:56:11ID:???trigger_error()が1023バイトしか取ってくれないんですが、
どこをいじればいいでしょう?
log_errors_max_len = 0;
にはしてるんだけどなぁ…
error_reporting(E_ALL);
set_error_handler('test')l
trigger_error(str_repeat('a', 1024). 'b');
function test($no, $str, $file, $line) {
echo $str. "\n";
echo strlen($str). "\n";
}
0371370
2006/05/08(月) 12:09:33ID:???0372369
2006/05/08(月) 12:25:42ID:???うまくできた人いたら、報告してもらえるとうれしいす
0373nobodyさん
2006/05/08(月) 15:05:08ID:wZI7Xo6Autf-8と書くときと、utf8と書くときがあります。
文字コード系の関数を使うときはutf8(ハイフン無し)で
htmlのヘッダのcharsetはハイフン無いと読まなかったり。
このへんの正確な定義はなんですか?
0374nobodyさん
2006/05/08(月) 15:21:47ID:w88YtdTUその後に時間のかかる処理をしたいのですが、どうしたらよいでしょうか?
構造では、
Locationで別のページへリダイレクトさせておき、
リダイレクトさせた後、サーバー側で残りの時間のかかる処理を終わらせたいのです。
現状だと、Locationを指定してもプログラム全てが終わらないとheaderが実行されてないような感じです。
PHP4.4.2 + Apache2.0 Handlerを使用しています。
0375nobodyさん
2006/05/08(月) 15:52:55ID:???>utf8と書くときがあります。
お前が勝手に書いてるだけだろ
ハイフンは入れましょう
http://jp.php.net/manual/ja/ref.mbstring.php#mbstring.supported-encodings
0376nobodyさん
2006/05/08(月) 16:16:48ID:???処理済のログを加算しない方法、どんな方法があるでしょうか?
たとえば、1か月分1つのログファイルにためるとして、
15日/月末の半月毎に測定プログラムを走らせる場合です。
月末に処理するときは15日までを加算してはだめですよね。
ぱっと思いついたのが別のファイルに処理済の日数を書いておいて
それを処理前に読み込んで処理開始の日を決める、
という方法なのですが、非常にまんどくさいです。
もっとシンプルでよい方法ありましたらきぼんぬ
0377373
2006/05/08(月) 16:35:36ID:wZI7Xo6Aえー!そうだったのか。レスどうもです。
でもutf8って書いてあるサンプルコードとかある気がします。
utf8でググってもたくさん出るし。
ハイフンなしは通常ありえないんですかね?
0378nobodyさん
2006/05/08(月) 16:51:30ID:???Shift_JIS
EUC-JP
UTF-8
が正式?
mb_系の関数はsjisとかテキトーに指定しても判別してくれるけどね。
0379nobodyさん
2006/05/08(月) 16:52:46ID:???0380nobodyさん
2006/05/08(月) 16:54:52ID:???ttp://dev.mysql.com/doc/refman/5.1/en/charset-charsets.html
0383nobodyさん
2006/05/08(月) 18:43:31ID:???ja、Japaneseなどなど混在しててイラッと来るときはある。
統一してほしいよね。
0385nobodyさん
2006/05/08(月) 18:48:00ID:???0386nobodyさん
2006/05/08(月) 18:48:06ID:wZI7Xo6A値段を入力するところで、桁数を表すカンマ付きで入力すると、
5,000円よりも50円の方が高くなって
値段順ソートができません。
こういう場合は一般的にどうしているのでしょうか?
データ型はfloatとvarcharを試しましたがイマイチです。
0388nobodyさん
2006/05/08(月) 18:56:38ID:???ftpってセキュリティの面で色々問題ありかと思うのですが、
そのプログラムへのアクセスをHTTPS通せば、
セキュリティ的にはほぼ問題なくなる(盗み見されなくなる)と考えてよいでしょうか?
MyPC--(HTTPS)--Server--(localなんで覗き見気にしなくて良い)--アップロード先
間違いがあったら指摘よろしこ
0390386
2006/05/08(月) 19:14:47ID:wZI7Xo6A最悪それでしょうがないかなと思ってます。
phpのスクリプト側で何文字目にカンマとか
表示するときにそういう処理をするのかなとも思ったのですが
結構手間なので。
なんかいい方法ないですかね?
0392nobodyさん
2006/05/08(月) 19:18:42ID:???http://jp.php.net/manual/ja/function.number-format.php
これですか。
0393374
2006/05/08(月) 19:21:35ID:???無駄レスすみませんでした。
0394369
2006/05/08(月) 21:40:26ID:a7rUGxAuサーバーのはいじれないからWinでテストしてるんですが、
そっちだと駄目なんだよね…
unix系ならいくかなぁ
0396376
2006/05/08(月) 23:29:30ID:???0397nobodyさん
2006/05/09(火) 02:06:25ID:???0398nobodyさん
2006/05/09(火) 12:54:15ID:???とやると普通は「2006年05月09日」と表示されるはずなのですが、
「2006・05月09日」と年が・に化けてしまいます。
Shift_JISエンコードなのですがどうすれば宜しいでしょうか、ご伝授お願いします。
ちなみにphpはバージョン5.1.2です。(Linux版)
0399nobodyさん
2006/05/09(火) 13:20:06ID:???PHP5.1.0からdate()のフォーマットに"N"が追加された。
sjisの"年"は"N(0x4E)"を含んでいるのでそうなる
対策は文字コードを変える
または
$year = date("Y");
echo $year . "年" . date("m月d日");
0400nobodyさん
2006/05/09(火) 13:21:43ID:???ありが�d。 ってそういうことだったのね(´;ω;`)ブワッ
sjis派の自分としては何かメンドクサイことになりそうです。。。
0401nobodyさん
2006/05/09(火) 13:32:34ID:???試行錯誤の結果こうなった
マンドクセのは変わらないか
echo date("Y\x94\Nm月d日");
0402nobodyさん
2006/05/09(火) 13:41:06ID:???echo strftime("%Y年%m月%d日");
を使うことにする
0403nobodyさん
2006/05/09(火) 13:49:39ID:???んー何故かSyntaxエラーが返って着ました。。。 文字コードの直打ちはムリポなのかな(´・ω・`)?
>>402
ぉお!そういえばそんな関数が;;; 記憶量の差が露呈してきた希ガス;
0404nobodyさん
2006/05/09(火) 13:51:36ID:???編集中のコードで実験してみたのですが、その時既に一行上が間違ってました;;; ハズカシス;
0408nobodyさん
2006/05/09(火) 16:25:22ID:???マジレスするならサーバ側でlogrotateして、ローテート処理されたログを対象に集計するのが現実的。
Apacheのログなんて、平気で時系列前後するよ。
0409nobodyさん
2006/05/09(火) 16:34:53ID:???最近webじゃなくwindowsで動作するソフト作りたいなと思い始めたんですが、
web言語とは全く別物?
0410軟式PHP
2006/05/09(火) 17:28:33ID:???phpからだと別物に感じるかもなぁ。.Net ASPなら違和感なかったろうけど。
でもプログラムが好きなら、きっと楽しいからやってみるといいよ。
0411nobodyさん
2006/05/09(火) 18:19:51ID:???F-BoardというPHP+MySQLの掲示板をいじっているのですが、
Fatal error: Call to undefined function: numrows()
in /virtual/ホニャララ/public_html/php/board/post.php on line 191
上記のようなエラーが出てまいってます。
このエラーの下部に、その原因となってるであろうファイル名と行数が表示されているものの、
その箇所は特に手を付けたわけでもなく、恐らく正常な記述だと思うんです。
これはどこか別の場所に問題が起きてるのでしょうか・・・。
いじっていたのは確かにこのpost.phpで、例のBBQとかいうのを組み込もうとしていました。
ですがどうやらうまくいかなかったようで、いじった内容を全て削除したんですがこのザマです。
どなたかこのエラーの原因になってるであろう問題がわかる方いらっしゃいませんでしょうか。
0412nobodyさん
2006/05/09(火) 18:43:34ID:???エラーメッセージを読めば判るとおり、numrowsという関数が無い。
間違って関数を消したか、関数名を書き換えたか、
関数を読み込む部分を消したか。
差分を取るなりしてどこを書き換えたか確認。
どこをいじったかわからないなら元に戻す。
xreaか?
0413nobodyさん
2006/05/09(火) 18:57:43ID:???ご指導ありがとうございます。
お察しの通りxreaです。よくわかりますね・・・。
指摘していただいた内容をもう一度確認してみます。
0414411
2006/05/09(火) 19:44:03ID:???無事に元通りにできました。
どうもありがとうございました。
0415nobodyさん
2006/05/10(水) 12:41:02ID:???つWinBinder(ttp://pecl.php.net/package-info.php?package=WinBinder)
PHPでGUIアプリが作れる...らしいです。
0416nobodyさん
2006/05/10(水) 13:15:35ID:???IEだとwwwあってもなくてもセッションは同じサイトとして扱われるのに、
Fxだとwwwありとなしで別のサイトとして扱われるんですね。。。
最初それに気づかなくてなんでセッションが勝手に増えたり減ったりしてるのか無駄に時間を費やしてしまったorz
こういうのってW3C絡みで何か取り決めがあるのでしょうか。
それともブラウザの開発者が勝手に判断してるのでしょうか。
無論ドメインを統一すれば問題は解消されますが、
例えばwwwとwww2みたいに複数の鯖を経由する時などに弊害が出そうな気がしまして。。。
ところでセッションが余りに便利過ぎてセッションばかり使ってるのですが、
クッキーを使うのとどちらがブラウザに優しかったりするのでしょうか(期限は同じ設定だったとして)。
0417nobodyさん
2006/05/10(水) 14:29:03ID:???あとセッションとクッキーって、
セッションidをcookieに格納するもんが普通だぜ
0418nobodyさん
2006/05/10(水) 16:58:34ID:???http://php.s3.to/simple/#updaterss
ソース
http://php.s3.to/simple/source.php?updaterss.php
$logmax = 10; // ログ記録最大行、RSS出力記事数
これを機能させる記述が抜けている様に思うのですが、実際に機能させる為にはどのようにすればよろしいのでしょうか?
0419軟式PHP
2006/05/10(水) 18:19:32ID:???0420nobodyさん
2006/05/10(水) 18:48:16ID:???サーバー側?の$_POSTの値が初期化されないためブラウザで更新をかけるたびに同じ値を連続投稿してしまいます。
もしかすると、PHPというよりアルゴリズムの問題になってしまうのかも知れませんが
$_POSTや$_GETの値を初期化する方法など無いでしょうか?
0421nobodyさん
2006/05/10(水) 18:57:58ID:???それはサーバー側じゃなくてブラウザが毎回同じ値を送信してるだけ。
そういうもの。
投稿完了時にLocationで別のページに飛ばしてしまえば多重送信は防げるよ。
0422nobodyさん
2006/05/10(水) 19:50:30ID:???Firefoxが正しい実装だよ。
IEの実装はセキュリティ上の問題がある。
あと、パス指定しないのが悪い。
example.com に対してセッション発行すれば、
www.example.com と example.com で共有できるでしょ。
0424nobodyさん
2006/05/10(水) 21:59:29ID:???<[;゚Д゚]> ア゙ー!? ソコマデカンガエルナラ ナゼマニュアルヲミナイカナァ!
[_]
< >
0425420
2006/05/10(水) 22:21:00ID:???なるほど・・・
ありがとうございます!
Locationとはheader()関数のことですね?
試しに組み込んでみます
0427nobodyさん
2006/05/11(木) 01:09:43ID:???CookieもセッションCookieも同じ「Cookie」という技術を使ってるんだよ。
何がいいたいかというと、有効期間の指定が違うだけ。
(有効期間を何も指定しないとセッションCookieになる)
セッションCookieならパス指定ができない、ってわけはない。
0428nobodyさん
2006/05/11(木) 01:15:57ID:???寒気がする。
0429428
2006/05/11(木) 01:24:28ID:???>>423はセッションのCookieと言ってるわけで、PHPのセッション機能で発行されるCookieを指してると思うのだがどうか(>>416>>423から)。
>>423
で、結局はPHPのセッション機能を使っても出来る。session.cookie_domainにini_set。
■ このスレッドは過去ログ倉庫に格納されています