最近私は、任意の Web サイトのメタ情報、画像情報、およびその他の html 要素情報を取得する必要があるプロジェクトに取り組んでいます。
Cakephpは、私が使用したフレームワークです。コードは非常に単純で、複雑さがありません。そのため、ユーザーが URL を入力して [送信] をクリックすると、コードは指定された URL をクロールし、そのページから必要な情報を取得し、その情報を PDF としてユーザーにメールで送信します。
クライアントが同じプロセスをバックグラウンドで実行するように要求すると、複雑さが増しました。これは、バックグラウンドで実行するために使用したコードです..
// $this->sUrl Stores the client Input URL
// $this->noPages Stores the number of pages to be crawled from that website.
exec("wget -O - -b -q http://something.com/tools/checkerAction/". base64_encode($this->sUrl)."/$this->noPages", $var);
バックグラウンドでコードを実行すると、すべて正常に動作します。つまり、ページは適切にクロールされ、PDF は正常に生成されますが、メールは機能しません。
なんで?exec()で URL パス [http://something.com/tools/checkerAction/] を使用したためですか??
この問題を解決する手がかりがありません。プロセスがバックグラウンドで実行されていても、今はメールを送信したいだけです。どんな助けでも大歓迎です。
ありがとう