【PHP】下らねぇ質問はここに書き込みやがれ 67
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/04/11(金) 06:38:35ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 66
http://pc11.2ch.net/test/read.cgi/php/1205655807/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0069nobodyさん
2008/04/13(日) 03:26:06ID:???概念上それくらい常識として知っておけ、
ってことじゃねーの?
0071nobodyさん
2008/04/13(日) 03:54:16ID:bEpE13Rlただし、画像ファイル名に保存日を書き込めないとします(20080413.jpgなどはダメ)
phpの関数でそんなのあるんでしょうか?
一定期間が過ぎたら削除する処理に利用したいと思っています
0072nobodyさん
2008/04/13(日) 04:24:29ID:hN58mjIP(クーロンを使えというのはなしで)
前回のデータ取得はキャッシュされていて更新時間は変数として使えます。
現在の日付時間、デーの更新時間、毎朝6時
これらをどう組み合わせて計算すればいいでしょうか?頭がこんがらがってしまいました(?_?)
よろしくお願いします。
0073nobodyさん
2008/04/13(日) 05:23:53ID:???if(date(更新時間-6時間)<date(今-6時間)){
0074nobodyさん
2008/04/13(日) 05:27:15ID:???○mktime
orz
0076nobodyさん
2008/04/13(日) 05:51:50ID:hN58mjIP6時間じゃなくて朝6時です
6時以降の最初のアクセスをトリガーとして作動させたいのです
0077nobodyさん
2008/04/13(日) 06:49:43ID:???0079nobodyさん
2008/04/13(日) 08:06:52ID:???入ってるデータが全部タイムスタンプなら>>77でよさそうだけど、寝起きだから自信ないな
0080nobodyさん
2008/04/13(日) 08:54:53ID:y9NKt7wS(現在のセッションの、全てのセッションデータの廃棄ではありません)
マニュアルを見た感じではみつかりません。
http://jp2.php.net/manual/ja/ref.session.php
具体的には、PHPのプログラムを更新する場合に、その前からのセッションが生きてるのは、嫌だなぁって事なんですが。
PHPは5.2 使ってます。
0082nobodyさん
2008/04/13(日) 09:25:53ID:y9NKt7wSなるほど。
session.nameはPHP_INI_ALLだから session_startより前で設定すればできそうですね。
ありがとうございました。
0083nobodyさん
2008/04/13(日) 09:52:09ID:/FusEZA8008683
2008/04/13(日) 10:09:53ID:/FusEZA8ありがとうございます。
cronについて調べてみましたが、いまいち使用方法がわかりません。
簡単なサンプルを示していただけませんか?
(1時間ごとにtest.PHPを呼び出す例など)
使用しているサーバはoroti.comのw8サーバです。
http://www.abcoroti.com/~rent/rspace/server.html
0088nobodyさん
2008/04/13(日) 10:43:16ID:???読んでないけど、クーロソが使えると言うならば、鯖屋の指示通りに
設定すればいいだけ
(本来は鯖の設定ファイルを書き換えるようなのだから、それなりの権限がなければできない)
使えなければ、前に出てたアクセスをトリガー
(アクセスがあったら、それを契機に)スクリプトで処理するという方法で解決
0089nobodyさん
2008/04/13(日) 10:43:55ID:???0091nobodyさん
2008/04/13(日) 12:13:21ID:???0092nobodyさん
2008/04/13(日) 12:57:13ID:???でっていうwww
009383
2008/04/13(日) 13:02:10ID:/FusEZA8ありがとうございます。
質問板にてcronに関するスレを発見しました。
質問者:cronは使えまか?
管理人:cronつかえますよ。
cronに関するスレはこれだけで、鮎の方にも設定方法が紹介されていませんでした。
この場合どうすればいいでしょうか?
htaccessみたいなかんじで毎時間処理するよう記述したファイルをUP
するんですか?
0094nobodyさん
2008/04/13(日) 13:14:28ID:???xpath使えって話?
0095nobodyさん
2008/04/13(日) 13:22:57ID:/XYVoWCvPEAR::Image_Graph(オープンソース)を使用して
円グラフを作成しています。
マーカー部分に、"項目名 XX%"の用に表示させたいと思っています。
項目名を表示する方法をわかる方がいれば教えてもらえないでしょうか?
PHPとは少し違いますがお願いします。
0096nobodyさん
2008/04/13(日) 13:28:26ID:???いい加減PEARはスレ違いだっつうの
0097nobodyさん
2008/04/13(日) 13:37:47ID:???任意の引数でタイムスタンプ作成する、dateの逆関数みたいなものって無いものかね
mktimeより楽に使えると思うのだがどうか。
$timestamp=inv_date('08年04月13日13時40分','y年m月d日H時i分');
みたいな
0098nobodyさん
2008/04/13(日) 13:41:24ID:???0099nobodyさん
2008/04/13(日) 13:48:35ID:???HACKER SAFE使ってたって書いてあるけど、
ああいう外部からのチェックサービスって
結局CGIプログラムのソースコードは見ないんだろうから、
その中にある脆弱性には甘いんだと思うよ。
色んなサービスを動かすサーバ建てて、
その中に脆弱性のあるバージョンや機能が無いか調べるには良いと思うけど。
0100nobodyさん
2008/04/13(日) 14:55:35ID:/XYVoWCvすみませんでした。
0101nobodyさん
2008/04/13(日) 16:58:04ID:mSGmcBg3たとえば、数十個のディレクトリ名を定数として利用する場合、配列でなくdefineでも問題ないと思いますが、
状態遷移に必要な情報を管理する多次元の配列の定数が必要な場合、どのようにするのがベターなのでしょうか?
・グローバルなところに変数として置く(現在はこの考えを利用)
・オブジェクト定数で管理
・XML/YAMLなどでデータ分離
あたりが思いつくのですが、常套手段などがあったらご教授お願いします。
0103nobodyさん
2008/04/13(日) 18:29:39ID:cn35Eo4dord()とchr()を使用することでバイナリの扱いを解決することができました。
答えてくださった方々、ありがとうございます。
もうひとつ質問なのですが、phpの配列の要素数に上限はあるのでしょうか?
要素数が100000くらいのときはプログラムが正常に動くのですが、
要素数が1000000くらいになると途中でプログラムが止まってしまいます。
どなたかご存知であれば教えてください。
お願いします。
0104nobodyさん
2008/04/13(日) 18:56:04ID:cn35Eo4d追記します。
このようなプログラムを組んでおり、
容量が1MBを超えるようなファイルだとプログラムが途中で止まります。
$fno = fopen("sample.mp3", 'rb');
while (!feof($fno)) {
$data[] = fread($fno, 1);
}
fclose($fno);
0105nobodyさん
2008/04/13(日) 19:33:29ID:???[PHP] 配列に値を入れていくとエラーになりプログラムが落ちます。
http://q.hatena.ne.jp/1145420732
と同じ現象じゃないかな。
つまりPHPスクリプト一つに許可されている使用メモリ量をオーバーしているんだと思うよ。
デフォルトでは8MBか16MBに設定されているらしいのに、
たった1Mのファイルでオーバーしちゃうなんておかしいと思われるかも知れないけど、
PHPは配列の要素毎にも変数の型を持っているだろうから、余計にメモリを食っちゃうんだろうね。
単純に読み込んだデータにバイト単位でアクセスしたいのなら、
$data = fread($fno, filesize("sample.mp3"));
として一つの変数へ一気に読んじゃえば、配列と同じに$data[0]って感じで読めるんじゃない?
上のは試してないから嘘かもしれないけど。
0106nobodyさん
2008/04/13(日) 21:43:31ID:RGnLfYK/NOTE: You must have cookies enabled to use setup and header admin!*
ブラウザ側ではクッキーは有効にしてるんですが・・・・どうすればいいでしょう?
0107nobodyさん
2008/04/14(月) 00:14:07ID:???http://www.borujoa.org/upload/source/upload18138.zip
0108nobodyさん
2008/04/14(月) 00:42:56ID:???0109nobodyさん
2008/04/14(月) 00:46:10ID:???0112nobodyさん
2008/04/14(月) 11:41:38ID:6hAyd3lAならなかったりします。どういうルールで変換されているんでしょうか。
php -n -r "print(floatval(1100000));" → 1100000 が表示される。
php -n -r "print(floatval(1200000));" → 1.2E+6 が表示される。
php -n -r "print(floatval(1300000));" → 1300000 が表示される。
php -n -r "print(floatval(1300000));" → 1.4E+6 が表示される。
php -n -r "print(floatval(1500000));" → 1500000 が表示される。
環境は以下の通りです。
$ php --version
PHP 5.2.5 (cli) (built: Mar 3 2008 14:30:26)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with eAccelerator v0.9.5.2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
with Xdebug v2.0.2, Copyright (c) 2002-2007, by Derick Rethans
OS:Windows XP SP2
0113nobodyさん
2008/04/14(月) 14:26:42ID:???PHP5に元から入っているSQLiteのバージョンは2ですよね?
これを、バージョン3にしたいのですがインストールがいまいち分かりません。
環境は、WinXP Apache2 PHP5 です。
DB板に書くべきか悩みましたが、
PHP関係なのでこちらに書きました。
0114nobodyさん
2008/04/14(月) 14:39:54ID:???0116nobodyさん
2008/04/14(月) 17:23:23ID:???0117nobodyさん
2008/04/14(月) 18:17:04ID:???PHPを記述しているページのアドレスをhttp://○○.phpではなく
http://○○.htmlまたは.php以外のモノにしたいのですが
やりかたが分かりません。
PHPを使っていると思われるサイトでも
アドレスが、http://○○.htmlとなっているのを見かけるのですが
どうやっているのでしょうか?
知っている方がいましたら教えてください。
0119nobodyさん
2008/04/14(月) 18:47:51ID:???検索してやり方を調べてみます。ありがとうございました。
0120nobodyさん
2008/04/14(月) 19:11:38ID:???Apacheに拡張子htmlをPHPとして動かすように指示するだけ
Add-Type application/x-httpd-php .html
とかにすれば拡張子htmlのものがApacheでPHPとして扱われる
まぁこれ以上は板違いなんで
.htaccessについて深く知りたければWeb制作板へどうぞ
0121nobodyさん
2008/04/14(月) 19:42:46ID:???拡張子phpを使いたいという理由だけでPHPを始めた俺が来ましたよ
(突っ込みは無用)
アドレスが*.phpなのがオサレなんだと思ってた時期もありました
0123すのっぶ
2008/04/15(火) 02:01:01ID:LJ3oHWbNmd5だと32桁の16進数値になりますが、大文字小文字を区別した表示でもっと短いhashはどのようなものがありますか?
ある携帯サイトで送られてくるメールのURLにそれらしきものがあり、「RJgYbxmTqnN5」という表記でした。
0124nobodyさん
2008/04/15(火) 02:04:11ID:???0125nobodyさん
2008/04/15(火) 02:12:30ID:???0126nobodyさん
2008/04/15(火) 02:38:46ID:???0127nobodyさん
2008/04/15(火) 07:42:07ID:LJ3oHWbNcrypt だった。サンクス > 126
ちょっと古いサーバで試したんだけど、salt を指定しない場合、「$1$Qgv55ZYN$likCiswhSgaLSaWdJeObY.
」とかで、しかも毎回内容が変わってた。これはこれで役にたつものなの?どうやってパスワードチェックするんだろう。
ちなみにそのサーバの定数値は以下
CRYPT_SALT_LENGTH 12
CRYPT_STD_DES 1
CRYPT_EXT_DES 0
CRYPT_MD5 1
CRYPT_BLOWFISH 0
OS REDHAT 9
0128nobodyさん
2008/04/15(火) 09:26:21ID:???パスワードのチェックの時は、ソルトを読み取ってから
入力されたパスワードのハッシュを計算する
つ man 3 crypt
0129nobodyさん
2008/04/15(火) 14:10:49ID:???あれの滞在時間とか、直帰率とか、再訪とか、
ああいうのの開発手法について、概要でも良いので
説明しているサイトをご存じないですか?
ググっても、ASPとかWeb屋とかが出てくるばかりで・・・・
0130nobodyさん
2008/04/15(火) 14:31:23ID:???だいたいどういうことすればできるかイメージつくだろ。
クッキー、セッション、リファラーetc
それすらイメージできないうちは作れるレベルにないということ。
0131nobodyさん
2008/04/15(火) 14:43:24ID:tEWEzoyOimapでpop3サーバーにつないで、読んだメッセージをDBにしまい
ごにょごにょしようかと思ってるのですが、
メッセージを既読にするにはどうしたらよいのでしょうか?
imap_setflag_full()
はimapでつないだ時だけ見たいだし、
imap_body()
に「既読フラグをたてないオプション」みたいのがあるので、読めば自動的に立つのかと思ったけど
だめっぽいです。
立てられないと、毎回すごい数のメールを見に行かなきゃならないのでちょっと現実的じゃないかなと。
わかりましたらお願いします。
0132nobodyさん
2008/04/15(火) 14:47:25ID:???ログは取ってるんですよ。
IPアドレスとかUAとか、アクセス時刻とか。
それらをどういうふうにデータとして加工・保存していけばいいかのヒントになるようなものがあればということです
書き方が悪かったですね。スマソ
0133nobodyさん
2008/04/15(火) 15:31:02ID:???0134nobodyさん
2008/04/15(火) 15:43:29ID:6h+mXfU6人大杉の板を.dat直読みさせることで、表示を可能にしてるらしい
.datがどこにあるか教えてください
例えば、ここのスレ http://pc11.2ch.net/test/read.cgi/php/1207863515/ の.datってどこでしょうか
0135nobodyさん
2008/04/15(火) 15:49:37ID:???あまり詳しくないのですがDB使う場合とファイルをそのまま読み書きするのでは
やっぱ違いますか
0136nobodyさん
2008/04/15(火) 16:02:39ID:???なんでこんな糞システムになるのか理解できないが改善できるなら改善してくれ
じゃないと色んなところに迷惑がかかる
アクセス数が1日数件なら問題ないけど
>DB使う場合とファイルをそのまま読み書きするのではやっぱ違いますか
違う
扱うデータ件数が多ければ多いほどDBのほうが有利
0137nobodyさん
2008/04/15(火) 16:19:15ID:???10MBのログに吐き出すだけならデータベースよりも軽石。
0138135
2008/04/15(火) 16:28:06ID:???ちょっと説明不足でした
プログラムファイルが10MBというわけではなく読み書きするデータファイルが10MBあるということです
最初は0でだんだんたまっていくという仕組みです
cgiで動かしていたのですが10MBぐらいで鯖の限界がきました
なのでPHPで作り直そうと思い、どのやり方が負荷が少ないかということで聞いてみました
やはりDBの方がいいのでしょうか
0139nobodyさん
2008/04/15(火) 16:51:25ID:???おそらく使用可能なメモリが足りてないんでしょ?
だとするとcgiがだめでphpなら平気そうとかそういうレベルじゃないような気がする
特にPHPやPerlでWebプログラム組んでる人は特段意識しないだろうけど
扱うファイルが膨大となるとメモリ管理を効率よくおこなうプログラムを意識しないとだめだと思う
全てを配列に読み込むとかしただけでも相当メモリ使用量が増えるから
というわけでどういうものなのか想像できないのでなんともいえないけど
プログラム側の設計とファイルの扱い方についてを根本的に変えないといけないと思う
0140nobodyさん
2008/04/15(火) 17:09:48ID:???http://www.filebank.co.jp/wblink/b326ee425cd825e972e0e8c931e33383
0141nobodyさん
2008/04/15(火) 17:24:26ID:???別にログにレコード追記するだけなら別に10Mが100Mでも遅くならんだろう。
ただまぁ、段々増えると言っている割りに、読み書きと言っているし、
なんとなく、file()とかで読み込んで...とか考えてそうだから素直にDBを使った方がいいね。
違ったらごめんよ
0142nobodyさん
2008/04/15(火) 17:41:39ID:???配列に読み込んで追加して・・・とかやってるんなら追記モードでオープンすれば問題ないでしょ。
とりあえずもっと詳細な情報がないと何とも言えない。
>>136
データ件数が少なくてもリレーションや制約,データ構造のためにDB使う意味はあるよ。
0143nobodyさん
2008/04/15(火) 19:53:03ID:???こんなデータの並びをバイナリにして、ブラウザからダウンロードさせたいと考えて
いるのですが上手くいきません。どなたアドバイスして頂けないでしょうか?
以下失敗例です・・・
$binarr = split(",", $binstr);
$bin = "";
for ($i=0; $i<count($binarr); $i++) {
$bin.= pack("c", $binarr[$i]);
}
header("Content-Type:application/octet-stream");
echo $bin;
exit();
0144nobodyさん
2008/04/15(火) 20:12:25ID:???$bin.= pack("c", $binarr[$i]);
↓
$bin.= pack("c", hexdec($binarr[$i]));
ん〜しかしpackの説明のとこで0xXXって感じで渡してるのに
なぜこれで上手くいったのかいまいち納得できず・・・
0145nobodyさん
2008/04/15(火) 20:38:20ID:???getResponseBodyでちゃんと返ってくるんだけど、
setBasicAuth使う&setMethod(HTTP_REQUEST_METHOD_POST)
すると
getResponseBodyしても何も文字列が返らない。
バグか何か?
どなたかご存じないですか?
0146145
2008/04/15(火) 20:39:06ID:???setMethod(HTTP_REQUEST_METHOD_GET)
なら問題ありませんでした。
0147nobodyさん
2008/04/15(火) 21:11:59ID:???$a="1+2";
とかがあったら3にしたいだけなんですが
0148nobodyさん
2008/04/15(火) 22:05:32ID:???GDのimagecreatefromjpegを使っているのですが、
画像がでかいと死にます。
普通に死んでくれると問題ないんですが、
エラーメッセージも、返り血もなく、いきなり実行が中断されるので、エラートラップもしけません。
問題を回避する方法知ってる人いませんか?
0149nobodyさん
2008/04/15(火) 23:57:17ID:???0150nobodyさん
2008/04/16(水) 00:16:21ID:???0151nobodyさん
2008/04/16(水) 08:11:13ID:1M88tLAKもちろん画像形式はgifにしました
PCでは当然見れますし保存すると拡張子もgifです
考えられるのはキャッシュ化したファイルにはpngとなっているのですが
ダウンロードしてみると中身はちゃんとgifです。
どうすればいいでしょうか
0152nobodyさん
2008/04/16(水) 09:39:16ID:???メモリーが足りてないんだろう。
memory_limitの値とかチェック。
あと、imagecreatefromjpegの前にファイルサイズとかチェックしろ。
0153151
2008/04/16(水) 10:28:41ID:???0154nobodyさん
2008/04/16(水) 11:27:50ID:DHAOt7zZこれの設定がよくわかりません。
postgresqlやいろいろ入れていった場合
追加していけばいいのでしょうか?
0155nobodyさん
2008/04/16(水) 12:19:19ID:xAJOe1B+下記のようにしているのですが、クッキーが有効となりません。
function cookieTest(){
if($_COOKIE["test"]<>"on"){
クッキーがない場合の処理
}
setcookie("test","on",time()+30);
}
0156nobodyさん
2008/04/16(水) 13:05:55ID:???0157nobodyさん
2008/04/16(水) 13:12:39ID:KGnhrG4i.htaccessの
AddType application/x-httpd-php .htm .html
以外のやり方で、デフォルトで.htmlをphpファイルとして実行する方法はないでしょうか?
よろしくお願いします。
0158nobodyさん
2008/04/16(水) 13:16:48ID:???0159nobodyさん
2008/04/16(水) 13:17:54ID:???0161157
2008/04/16(水) 13:56:24ID:KGnhrG4iいえ、ローカルのテストサーバ―として利用しているので、嫌とかではないんですが
毎回ディレクトリごとに.htaccessを設置するよりも、デフォルトで設定しておきたいのです。
AddType application/x-httpd-php .htm .html
これをhttpd.confに記述すればいいんでしょうか?
0162nobodyさん
2008/04/16(水) 14:05:29ID:???>ディレクトリごとに
ルートに1つ置いとけばいいだろ
>これをhttpd.confに記述すればいいんでしょうか?
YES
まぁスレ違いもいいところだぜ・・・
0163nobodyさん
2008/04/16(水) 14:06:46ID:???0164131
2008/04/16(水) 14:11:58ID:QC7Y4msPでフラグは立っていたみたいです。
imap_headerinfo()
で見ると、実際変わっていました。
しかし、imap_checkで変えるrecentの数や、
imap_searchでの検索でも、フラグが立っているとみなされません。
\\Flaggedをたてて、 UNFLAGGEDなんかでimap_searchしてみても
全権引っかかってしまいます。
From "hoge@hogehoge"
なんかで検索すると、うまく見つられてるようです。
常に1000件くらいメールがあるので、全部に対して処理をすると、読みこんで
メール解析したオブジェクト組み立てるだけで15秒〜30秒かかります。
DBに登録して・・・と考えると、ぜひ、新しいメールだけに処理をしたいのですが
なにか方法ありますでしょうか?
お願いいたします。
0165nobodyさん
2008/04/16(水) 14:32:44ID:KGnhrG4iありがとうございました
0166nobodyさん
2008/04/16(水) 14:36:42ID:pyqKRshm$_COOKIEはグローバル変数だよ?
0167nobodyさん
2008/04/16(水) 14:41:52ID:pyqKRshmあーわかった。それはクッキーに値が入ってない。
CやperlとかでCGI経験がないと、httpプロトコルが分らないから
クッキーはヘッダーで渡されているというのが分らないんだよね。
つまり、本文(html)を出力した後にクッキーは送出できないんだけど、
ここを理解しないと、今後同じデバッグに苦しむことになるよ。
解決策は、本文の前にsetcookieを呼ぶこと。
実装上のコツはノウハウだから、ケースバイケースでアドバイスが変わるよ。
0168nobodyさん
2008/04/16(水) 14:51:35ID:???配列にいくつ値があるかはそのつど変わります。
以下のようにはできるのですが、もっと簡単な方法がありましたらよろしくお願いいたします。
$data = array('hoge','foo','fuga'...'bumobumo');
$str = $data[count($data)-1];
■ このスレッドは過去ログ倉庫に格納されています