panerai777 の回答履歴
- PHPとMySQLで100万件のデータを登録
PHPとMySQLで100万件のデータを登録する方法に困っております。 1.PHPで100万回ループして数字をランダムで取得し一意の数字を配列に格納。 ⇒データ量が多すぎてタイムアウトしてしまいます。いい方法はありますか? while($i<1000000){ $h = sprintf("%07d",mt_rand(1,1000000)); if(!array_search($h,$val)){ array_push($val,$h); $i++; } } 2.またデータベースはMySQLを使用しようかと考えていますが、一気に登録する方法など効率のいいやり方はありますでしょうか?
- PHPでプロキシ通過する方法について
PHPで外部サイトから為替情報を取得するプログラムを作成しているのですが、会社のプロキシが邪魔をしてうまく取得できません。 会社でインターネットに接続する際は毎回ユーザIDとパスワードの確認のウィンドウが出てきます。 PHPのVerは5.1.2です。よろしくお願いします。
- 締切済み
- PHP
- karasumi24
- 回答数1
- perlでのWEBアプリ開発について
勉強のためにperlでWEBアプリを開発しようと試みてます。 作成するWEBアプリは、DB(mysql)と連携し使用して家計簿アプリを作ろうと考えています。(10画面程度を想定) ざっくりとした仕様としてはメインにカレンダーを置き(日にち毎に収支を出力)、日毎のページで家計簿の項目の登録等を行う動作を考えています。多分外部には公開しませんが、ユーザ登録を行い、ユーザ管理についても実装したいです。 現状、サーバはlinuxにapacheを載せてper-CGIが動作する環境は作成でき、HTMLについてもページ毎に最低枠は作成済みの状態です。 使用するperlのモジュールについては、現状以下を考えています。 CGI(パラメータの譲与等) Templete-Toolkit(CGIと画面ソースの分離) DBI(DB接続用) Calendar(カレンダー作成用) Jcode(文字コード操作) Aapache::Session(ページのセッション管理) 以上を踏まえて質問なのですが、 (1)家計簿のアプリを想定して上記のモジュール以外に必要、または有ると便利と思われるモジュール等を教えて頂けないでしょうか。 (2)また、perlのフレームワーク(Catalyst、CGI::Application等)を使用するかも検討したのですが、個々のモジュールの役割だったりモジュールの勉強にもなるかと思い選びませんでした。使うべきかどうかについて(使えばここがこう簡単に出来る等)の意見を頂けますでしょうか。 よろしくおねがいします。
- ベストアンサー
- Perl
- turubeelll
- 回答数2
- PHPからPerl へのコンバート
現在、PHPで作成したものをPerlへ変換しております。 Perlはあまりやった事がないので四苦八苦しております。 下記の処理をPerlへ変換する場合、どの様な記述になりますでしょうか? 精通している方、ご助言お願いいたします。 my $fp = fsockopen( $Host, "80", $ErrNo, $ErrStr, 10 ); if ( $fp ) { $out = "GET " . $Path . " HTTP/1.1\r\n"; $out.= "Host: " . $Host . "\r\n"; $out.= "Connection: Close\r\n\r\n"; fputs( $fp, $out ); while( !feof( $fp ) ) $ret .= fgets( $fp, 128 ); } fclose( $fp );
- ベストアンサー
- Perl
- ogesatakao
- 回答数1
- ブログのメール投稿に関して教えてください
皆さん教えてください いまブログシステムを構築しているのですが いわゆる携帯電話からのメール投稿で、はまっています OS:linux redhat系 言語:perl5.6系 問題点 携帯電話からメールでのブログ記事投稿が行われた場合に どのタイミングでメールの内容を、ブログの記事として反映させるのかが分からない (本来ならリアルタイムで行うべき?) 大手のブログサイトの技術をできれば真似したい 必要な事柄があれば知りたい 現状の出来上がっている仕組み あるperl(CGI)を実行することで、メールをブログ記事として反映させる 1.POP3Clientでメール内容を取得 2.メールのfromを判別して内容を、ユーザのブログに反映 3.メールを削除 制限 メールは諸事情により1アカウントしかない よってメールをユーザ別で特定するにはfromを参照するしかない 反映のタイミングにとても困っています 皆さんのお知恵をお貸しください 宜しくお願いします
- PHPのメールフォームが急に真白になります。
PHPのメールフォームが急に真白になります。 原因は何でしょうか? 特に、PHPのバージョンアップなどはしておりません。
- ベストアンサー
- PHP
- mikichan-e
- 回答数2
- スキルを高めたい日曜プログラマへアドバイスをお願いします
はじめまして。 カテゴリ違いと指摘されるかも、とは思ったのですがより広範に情報を得たいのでこちらにPOSTさせてください。 私はperlをさわり始めて4年目くらいになる主婦です。 コンピュータの基礎教育を得て卒業し、出産退職までは一般メーカーのシステム部でシステムメンテやネットワーク管理、社内システムサポートなどをしていました。 もともとプログラマ志向が強く、育児がひと段落してからPerlのCGIを触り始め、最近は一からソースを組むことも苦ではありません。 ですが、最近は自分のソースを美しくない(醜い)と思うようになりました。 Perlの基本思想(?)であるTMTOWTDIから言えば、私のようなプログラマも受容される世界ではあると思うのですが、もっとスマートなソースを書きたいという欲が出てきたのです。 具体的に問題意識の高い順に挙げると、 ・正規表現にとても弱い!ので冗長なソースを書きがち ・家庭環境的に(たぶん年齢的にも)職場復帰しづらく、自分のソースを客観的に評価・研鑽する機会がない ・コーディングにリソースを意識しておらず、一般ISPのサーバにUPしたときに不安 ・「オブジェクト指向」という言葉を知っているが具体的にどういうことかさっぱりわからない などなど・・(本当はもっと重篤な問題点がいくつもあると思いますが)。 Perlの世界は私にとって流れの速い大海のようで、自分が今どこにいるのか、どこへ向かって泳ぎ出せばより「高み」へ進めるのかがわからない、といった感じです。 ちなみに私には「職場復帰して大規模システムの開発にかかわる」などといった野望はなく、あくまで在野にいて、一般ISP向けCGI専門として、よりクオリティの高いソースが書ける個人プログラマでありたいと考えています。 そこでこんな私に、購読すべき本・参加すべきグループ・訪れるべきサイト等があれば、ぜひおすすめいただけませんか。 手元には リャマ本、ラクダ本(Perl5)、CGIプログラミング初版、Perlクックブック2版、Perl救命病棟(翔泳社)、正規表現辞典(同) などがあります(オライリー系は皆リファレンス的な活用です) グループにはどこにも参加していません。 自宅には Vine Linux3.2 + Perl4 によるローカルテスト環境があります なんだか抽象的な質問で申し訳ありませんが、業界の一般論として有用なものがありましたらぜひお教えください。
- スポンサーサイトとの提携の仕方について
これは「インターネットビジネス」あたりで立てようか迷ったのですが、 プログラムが絡んでくるのでこちらにしました。よろしくお願いします。 よく懸賞金をスポンサーサイトからの品物の購入などで賄う仕組みの ゲームなどがありますが、どのように提携して認証しているのかが知りたいのです。 例えばAというゲームサイトに登録してるユーザがいるとします。 Aはゲームサイトにログインし、そこからリンクを辿ってスポンサーサイトに行きます。 そこで買い物をするわけですが、その買い物をしたという認識をゲームサイト側は どのように認識するのでしょうか?(それぞれプログラムが違うと思うので、置く場所も)
- ベストアンサー
- Perl
- takagoo100
- 回答数3
- wikipediaのAPIの取り込みについて
wikipediaのAPIを取り込みたいと思っています。 以下のURLをIE6から叩けば、「東京ドーム」に関するwikipediaの情報がxmlの形式で表示されるのですが、 http://ja.wikipedia.org/wiki/%E7%89%B9%E5%88%A5:Export/%e6%9d%b1%e4%ba%ac%e3%83%89%e3%83%bc%e3%83%a0 これを、 use LWP::Simple; $url = "http://ja.wikipedia.org/wiki/%E7%89%B9%E5%88%A5:Export/%E3%83%8A%E3%82%B9%E3%82%AB%E3%81%AE%E5%9C%B0%E4%B8%8A%E7%B5%B5"; $res = get($url); print $res; exit; としても、取得できません。 どなたか、このwikipediaのURLから情報をperlで取得する方法を教えていただけませんか。お願いします。 #なお、perl初心者です。 #サンプルコードを試行錯誤で書き換えしながら先に進むタイプです。 ちなみに、SimpleAPI(http://wikipedia.simpleapi.net/)による「東京ドーム」の取得は出来るのですが、 #上記コードの$urlを"http://wikipedia.simpleapi.net/api?keyword=%E6%9D%B1%E4%BA%AC%E3%83%89%E3%83%BC%E3%83%A0&output=xml"にする。 この場合、ダイジェスト文だけで全文は取得できません。 無謀かもしれませんが、全文を取得したく、前者のURLからの取得を望んでいます。 どうかよろしくお願いします。
- スポンサーサイトとの提携の仕方について
これは「インターネットビジネス」あたりで立てようか迷ったのですが、 プログラムが絡んでくるのでこちらにしました。よろしくお願いします。 よく懸賞金をスポンサーサイトからの品物の購入などで賄う仕組みの ゲームなどがありますが、どのように提携して認証しているのかが知りたいのです。 例えばAというゲームサイトに登録してるユーザがいるとします。 Aはゲームサイトにログインし、そこからリンクを辿ってスポンサーサイトに行きます。 そこで買い物をするわけですが、その買い物をしたという認識をゲームサイト側は どのように認識するのでしょうか?(それぞれプログラムが違うと思うので、置く場所も)
- ベストアンサー
- Perl
- takagoo100
- 回答数3
- Webアプリ作成時のオブジェクト指向について
Webアプリ作成時のオブジェクト指向について質問させてください。 Webアプリはデータベースやテンプレートなどを使って作成することが多いと思いますが、例えばデータベースにPDO、テンプレートにSmartyを用いてHogeクラスを作る場合、 class Hoge { protected $db; protected $tpl; function __construct() { $this->db = new PDO(); $this->tpl = new Smarty(); } } のようにHogeクラスのプロパティに直接PDOとSmartyのインスタンスを持たせるのはありなのでしょうか?ただこの場合だとデータベースやテンプレートを使わずに終了した場合に無駄になってしまうような気がするが気がかりです。 かといって毎回各メソッドの中でnew PDO()やnew Smarty()をするのは面倒な気がするんですが。何かいい方法やコツがあれば教えてください。
- ベストアンサー
- PHP
- puripuriman
- 回答数1
- 複数のセッションを同時に発行できますか?
要点:: PHPで複数のセッションを同時に発行できるのでしょうか?? もしできるのであればその方法が知りたいです。 説明:: http://q.hatena.ne.jp/1135082837 のような感じでメール認証を行うために 固有のキーをつけたURLを同時に複数のユーザーに発行したいです。 コレだけだとリンク先の方法で可能だったのですが、以下の条件があります。 ・同時に複数のユーザーに発行する(←コレも上記リンクで可能) ・SID(session_id)をつけてPHPのセッション機能を利用する(←コレは一人分だけなら可能でした*後述) ・ユーザーごとに別のセッションを発行する(←ここが問題になっています...) セッションを利用しての登録は ●セッションID付のURLをメール送信 ↓ ●新しいsession_idを古い物を削除せずに発行(session_regenerate_id()) とすることで可能だったのですが、 複数のユーザーに同時発行しようとしてloopさせてもセッションIDがひとつしか発行されません。 (同一スクリプト内だとsession_destroyなどを行っても同じsession_idが発行される) セッションがらみで参考にしているのは以下のサイトです http://search.net-newbie.com/php/ref.session.html セッションはそういう使い方はできない (原則的に1つしか発行できない)のでしょうか? よろしくおねがいいたします。
- POST・GETされたデータのチェックについて
こんにちわ phpスクリプト勉強中のものなのですが、 POST・GETされたデータを必須チェックや文字数チェック、使用文字列のチェックなど処理をすることは一般的ですが、渡されたデータを、正規表現などを用いて、スクリプトで使用できるように処理する考え方になにか総称があったと思うのですがなんと言うのでしょうか? ファイルを扱う時にはロックする のように、POSTされたデータを○○してログに保存する みたいな表現ありませんでしたっけ?
- csvファイルのセキュリティ
メールフォームで入力された項目を csvファイルでサーバに残しておきたいです。 そして、管理ページを用意してブラウザから管理者が csvのデータを閲覧できるようにしたいです。 しかし、csvデータは漏洩させてはならない情報です。 ディレクトリ構造、パーミッションなど 最善のセキュリティを教えて頂きたいです。 お願いします。 あと、 csvファイルの拡張子はcsv以外のほうが安全なのでしょうか? サーバ設定によるのでしょうけど。
- phpファイルをコマンドラインで実行できない
PHPファイル <?php $host = "ftp.aaa.jp"; $username = "test"; $password = "passwd"; // FTP 接続を開く $ftps = ftp_connect($host); $result = ftp_login($ftps, $username, $password); if (!$result) { echo "接続に失敗しました。\n"; return; }else{ echo "接続に成功しました。\n"; } // ダウンロードif (ftp_get($ftps, "test.csv","/home/test.csv", FTP_ASCII)) { echo "Successfully written to test.csv\n"; } else { echo "There was a problem\n"; } ?> をコマンドラインから実行すると、 「接続に成功しました。 Successfully written to test.csv」 は返ってくるのですが、実際にファイルのダウンロードが出来ていません。ただし、ブラウザから直接URLを入力して実行した場合は、ファイルのダウンロードが出来ます。 コマンドラインから実行出来ない原因を教えてください。
- バックグラウンド処理をforkする意味
初歩的な質問かもしれませんが… デーモンなどではなく、あくまでも通常のCGIスクリプトにおいて、何か重い処理をさせる場合は、STDOUTをcloseして処理はforkで生成した子プロセスにさせる、するとユーザーを待たせることなく(ブラウザをビジーから開放し)処理はバックグラウンドで実行される、という方法がよく見られるのですが、素朴な疑問があります。 ブラウザを開放させるにはSTDOUTをcloseすれば良い、 では、なぜ処理を子プロセスにさせなければならない? という点です。 一応、以下のような簡単なコードで試してみました。 ----------------- use Date::Format; my $log_file = 'hogehoge/test.log'; my $start = time2str('%m-%d %T', time); print "Content-Type: text/plain\n\n"; print "start:$start"; close(STDOUT); &heavy_exe($start); exit; sub heavy_exe { my $start = $_[0]; sleep(15); my $now = time2str('%m-%d %T', time); open(LOG, ">>$log_file") or &error('cant_open'); print LOG "$start\t$now\n"; close(LOG); } ----------------- 実行してみると、ブラウザはすぐさま開放される(読み込み完了になる)のと、15秒後にロギングも問題なく行われ、また本当に開放されていることを確認するために表示から15秒以内にリロードさせても、問題なく2プロセスとも動いていました。 以上を見る限りでは、forkなんてしなくても単にブラウザを開放するだけでいい、STDOUTをcloseするだけでバックグラウンド処理されると思うのですが、どうなのでしょう。 あるいは何か環境に依存した、子プロセスにさせなければならない理由などがあるのでしょうか。 よろしくお願いいたします。
- バックグラウンド処理をforkする意味
初歩的な質問かもしれませんが… デーモンなどではなく、あくまでも通常のCGIスクリプトにおいて、何か重い処理をさせる場合は、STDOUTをcloseして処理はforkで生成した子プロセスにさせる、するとユーザーを待たせることなく(ブラウザをビジーから開放し)処理はバックグラウンドで実行される、という方法がよく見られるのですが、素朴な疑問があります。 ブラウザを開放させるにはSTDOUTをcloseすれば良い、 では、なぜ処理を子プロセスにさせなければならない? という点です。 一応、以下のような簡単なコードで試してみました。 ----------------- use Date::Format; my $log_file = 'hogehoge/test.log'; my $start = time2str('%m-%d %T', time); print "Content-Type: text/plain\n\n"; print "start:$start"; close(STDOUT); &heavy_exe($start); exit; sub heavy_exe { my $start = $_[0]; sleep(15); my $now = time2str('%m-%d %T', time); open(LOG, ">>$log_file") or &error('cant_open'); print LOG "$start\t$now\n"; close(LOG); } ----------------- 実行してみると、ブラウザはすぐさま開放される(読み込み完了になる)のと、15秒後にロギングも問題なく行われ、また本当に開放されていることを確認するために表示から15秒以内にリロードさせても、問題なく2プロセスとも動いていました。 以上を見る限りでは、forkなんてしなくても単にブラウザを開放するだけでいい、STDOUTをcloseするだけでバックグラウンド処理されると思うのですが、どうなのでしょう。 あるいは何か環境に依存した、子プロセスにさせなければならない理由などがあるのでしょうか。 よろしくお願いいたします。
- 全てのhtml部分をphpで出力
はじめまして、php初心者です。 全てのHTML部分をprint文で出力してコードを記述しています。 <?php print("<HTML><BODY>~") print("</BODY></HTML>") ?> ↑こんな感じです。 ですが、よくみる参考書などでは下のように php部分とhtml部分を分けて記述しています。 <?php phpコード ?> <HTML><BODY>~ </BODY></HTML> ↑このように記述することに特に意味はあるのでしょうか? 見やすいだけですか? 個人的には全てphpで出力して記述するほうが書きやすいのですが print文だと処理速度が結構遅くなるとか、何かあるのでしょうか?
- &が入ると表示されなくなります。
use CGI; $cgi=new CGI; $url=$cgi->param('keywords'); keywordsに&があっても$urlを正常に表示させるには、どのように修正すればよろしいのでしょうか。よろしくお願いいたします。