Archive for 8月, 2011

2011年08月31日に投稿

[PHP]PHP Simple HTML DOM Parserで繰り返し処理を行うとメモリが大量に消費される

PHP Simple HTML DOM ParserというHTMLをパースを行いjQueryのように簡単にスクレイピングすることができるライブラリがあるのですが、forなどで繰り返しメソッドを使用すると大量にメモリを消費してしまい処理が中断してしまうことがありました。

その原因を調べたところ有名な現象のようですぐに解決策が見つかりました。下記のように$htmlの使用が終わったらclearメソッドの実行し、$htmlもunsetすることでforで繰り返してもメモリの大量消費が発生することはなくなりました。

参考
 http://simplehtmldom.sourceforge.net/manual_faq.htm
 http://looxu.blogspot.com/2010/07/blog-post.html

2011年08月26日に投稿

[jQuery]要素の高さを取得する

ある要素の高さ(CSSでいうheight)を取得したい場合はheightメソッドを使用することで取得できます。heightメソッドは単位が付いていない数値で返ってきますのでそのまま計算に利用できます。以下のコードはid属性に「hoge」が付けられた要素の高さを取得します。

2011年08月25日に投稿

サーバーにPEARがインストールされているかどうかを確かめる

PHPのライブラリ群であるPEARはyumでインストールすることができます。サーバーでPEARが使える状態であるか確認する方法として以下の方法が考えられます。以下はバージョンを表示するコマンドですが、PEARが使用できなければコマンドが見つからないというエラーに、使用できればバージョンが表示されます。

2011年08月14日に投稿

[EC-CUBE]納品書に表示されるロゴを変更する

version 2.4.4が対象です。管理画面の受注管理のページからPDF形式の納品書を自動生成することができます。そのPDFの右上にはデフォルトでEC-CUBEのロゴが表示されており、ネットショップとして稼働させる場合は自分の店舗のロゴに差し替える必要があります。

ロゴは /user_data/packages/default/img/pdf/logo.png に保存されており、このlogo.pngを差し替えることで納品書に表示される画像を変更することができます。

2011年08月03日に投稿

[PHP]crontabでPHPスクリプトを実行すると$_SERVER[‘DOCUMENT_ROOT’]が空になる

最近はTwitterのBOTを作っているのですが、BOTを定期的につぶやかせるにはcrontabが必須です。crontabで相対パスが含まれたPHPスクリプトをそのまま実行すると、正しく動いてくれません。crontabでの実行時はカレントレディレクトリが変わるようなのです。そのため、パスに関しては気を使う必要があります。スクリプトに絶対パスを書くのも汎用性が落ちるので$_SERVER[‘DOCUMENT_ROOT’]を使おうと思ったのですが、どうやら空になってしまうようです。以下は空になってしまうことを確認するためのコードです。

続きを読む