2011年01月17日

Simple Solution for PHP 5.3 + GraPHPite, "Fatal error: Call to undefined function: image_graph_element() "

Nice tip!

http://wmm.jp/2009/07/05/%E3%80%8Cfatal-error-call-to-undefined-function-image_graph_element-in-graph-php-on-line-136%E3%80%8D%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC/

So,

Graph/Fill.php
----------------------------------------------------
class Image_Graph_Fill extends Image_Graph_Element
{
//by SD
function Image_Graph_Fill(){
}


Graph/Marker.php
----------------------------------------------------
class Image_Graph_Marker extends Image_Graph_Element
{

//by SD
function Image_Graph_Marker(){
}

Graph/Layout.php
----------------------------------------------------
class Image_Graph_Layout extends Image_Graph_Element
{
//By SD
function Image_Graph_Layout(){
}

Graph/Element.php
----------------------------------------------------
class Image_Graph_Element extends Image_Graph_Common
{

//by SD
function Image_Graph_Element() {
}


That's all!!!


posted by SDozono at 17:51| 東京 ☀| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2008年04月12日

PHPの中に眠る、日本の夏時間情報

タイムゾーンのことを調べていたら、こんなのを見つけてしまった。
情報として残っているんでしょうか。使うときには注意しないと…。

(PHP5.1以上)

$a = timezone_abbreviations_list();
foreach($a as $v){
if($v[0]['timezone_id'] == 'Asia/Tokyo') var_dump($v[0]);
}

array
'dst' => boolean true
'offset' => int 36000
'timezone_id' => string 'Asia/Tokyo' (length=10)

array
'dst' => boolean false
'offset' => int 32400
'timezone_id' => string 'Asia/Tokyo' (length=10)

Wikipedia 「夏時間」
日本でも、1948年4月28日に公布された夏時刻法に基づいて、同年5月から毎年(ただし、1949年のみ4月の)第1土曜日24時(=日曜日1時)から9月第2土曜日25時(=日曜日0時)までの夏時間を実施していた(詳しくは夏時刻法を参照)。しかし、4回の実施を経て5回目直前の1952年4月11日に夏時刻法は廃止され、以後、日本では法律に基づく全国一斉の本格的なサマータイムは実施されていない。
ラベル:PHP
posted by SDozono at 07:33| 東京 ☔| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2008年01月08日

Google Graph用PHPクラス

うまく使えば、「汎用グラフクラス」も作れるかもしれません。
SVGとGDとGoogle Graphを切り替えられるような。

Class: Google Graph
http://www.phpclasses.org/browse/package/4299.html
ラベル:PHP google graph
posted by SDozono at 10:55| 東京 ☀| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2007年12月28日

Gifのリサイズ(サムネイル)

結構、役に立たない(サムネイルが真っ黒になってしまう)ソースが多かったので、今回、変換できたソースを。

$size = getimagesize(画像ファイルへのパス);

switch($size['mime']):
case "image/gif": // gif形式の場合の処理

$old_img = imagecreatefromgif(画像ファイルへのパス);
$new_img = imagecreate(新規サイズ1, 新規サイズ2);
$colorTransparent = imagecolortransparent($old_img);
imagepalettecopy($old_img, $new_img);
imagefill($new_img, 0, 0, $colorTransparent);
imagecolortransparent($new_img, $colorTransparent);
imagetruecolortopalette($new_img, true, 256);
imagecopyresized($new_img,$old_img,0,0,0,0,新規サイズ1,新規サイズ2,$size[0],$size[1]);

その後、ファイル保存は
imagegif($new_img, パス);

そのまま表示するには
header("content-Type: image/gif");
imagegif($new_img);
imagedestroy($old_img);
imagedestroy($new_img);
posted by SDozono at 03:38| 東京 ☀| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2007年05月17日

サーバ内大きいファイル上位50件リストアップ

借りているレンタルサーバの残り容量が少なくなっていました。
どのファイルがかさばっているのだろう、と調べたくなったのですが、すぐには出てきません。

Windows用のフリーウェアでは、円グラフにして分かりやすくどのフォルダが大きくなっているのかを図示してくれるようなものがあったなぁと思いつつ、ちょっと探してみたのですが、サーバサイドではなさそうでした。

で、オープンソースのものを見ているより、自分で書いてしまったほうが早そうだ、ということで下記のようなスクリプトにしてみました。

再帰でディレクトリ内のファイルサイズを調べてくるのは下記のスクリプトを参考に。
http://www.the-art-of-web.com/php/dirlist/

スクリプトを置いたフォルダと、その下のサブフォルダを再帰的に検索し、ファイルサイズの大きい上位50件をリストアップするようにしています。

簡単なスクリプトなので、いろいろいじるともっと便利になりそうですね。グラフと組み合わせたり、ディレクトリの移動などをできるようにしたら、なかなか使い物になるかな……。


<?PHP

  
function getFileList($dir$recurse=false)
  {
    
# array to hold return value
    
$retval = array();

    
# add trailing slash if missing
    
if(substr($dir, -1) != "/"$dir .= "/";

    
# open pointer to directory and read list of files
    
$d = @dir($dir) or die("getFileList: Failed opening directory $dir for reading");

    while(
false !== ($entry $d->read())) {

      
# skip hidden files
      
if($entry[0] == ".") continue;

      if(
is_dir("$dir$entry")) {
        
$retval[] = array(
          
"name" => "$dir$entry/",
          
//"type" => filetype("$dir$entry"),
          
"size" => 0,
          
//"lastmod" => filemtime("$dir$entry")
        
);

        if(
$recurse && is_readable("$dir$entry/")) {
          
$retval array_merge($retvalgetFileList("$dir$entry/"true));
        }

      } elseif(
is_readable("$dir$entry")) {
        
$retval[] = array(
          
"name" => "$dir$entry",
          
//"type" => mime_content_type("$dir$entry"),
          
"size" => filesize("$dir$entry"),
          
//"lastmod" => filemtime("$dir$entry")
        
);

      }

    }

    
$d->close();
    return 
$retval;

  }

  function 
myCmp($var1$var2){

    
$value1 $var1['size'];
    
$value2 $var2['size'];

    if(
$value1 == $value2){ return 0;}

    return (
$value1 $value2) ? 1:-1;

  }

  
$dirlist getFileList(dirname($_SERVER['SCRIPT_FILENAME']), true);
  
usort($dirlist"myCmp");
 
  echo 
"<table border=1>\n";
  echo 
"<tr><th>Name</th><th>Size</th></tr>\n";

  for(
$i=0;$i<50;$i++) {
    echo 
"<tr>\n";
    echo 
"<td>{$dirlist[$i]['name']}</td>\n";
    echo 
"<td>{$dirlist[$i]['size']}</td>\n";
    echo 
"</tr>\n";
  }

  echo 
"</table>\n\n";
?>
ラベル:PHP サーバ
posted by SDozono at 19:39| 東京 🌁| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2007年01月21日

phpEasyProjectの日本語化ほぼ完了……

phpEasyProject の日本語化がほぼ完了。

phpeasyproject.PNG

手を加えたのは、
jp.php (日本語リソース。jaにしたいんだけど、jscalendarがcalendar-jp.jsになっている。どうしよう。)
todo.class.php (function initToDoByID(),todo_foo() とか。)
taet.class.php (function getStatistic() など。)
todolist.tpl (function getFullDate()の調整)

の4箇所。XAJAXは修正の必要がなかった。
これでうまく動くか、社内のプロジェクトで試す予定。
新規項目の追加のつもりで、既存の項目を編集してしまうインターフェイスはちょっと変えたい。

ラベル:phpEasyProject
posted by SDozono at 23:13| 東京 ☁| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2007年01月19日

phpEasyProject

デザインもこなれているし、ごてごてしていないし、こりゃいいと思って phpEasyProject を入れて使い始めたんですが、日本語リソースにしたとたん、カレンダーが出てきません。

なんで、と思ったら、jscalendar 自体の日本語リソースが古くなっているようでした。上流(部品を作っている人たち)のほうに日本語リソースを送らないと、色々なプロジェクトでカレンダーが出てこない、ということが起こりそうです。

posted by SDozono at 17:42| 東京 ☀| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2007年01月10日

フォトショップのPSDデータをPHPを使ってWEBに表示

fseek とか fp とか使って、がりごりPhotoshopのファイルを読み、GDで表示させます。

Class: PHP PSD Reader
http://www.phpclasses.org/browse/package/3627.html

デザイナーさんなどが、Photoshopで作成したデータを、すぐにWEBで確認する、なんていうことができそう。
それとも、WEBでPhotoshopと同じようなグラフィックツール!?

PHP Classes サイトは、あたりはずれがいろいろありますが、え〜っ、そんなものまでPHPで作るの〜、というクラスが時折投稿されるので興味深い。

ラベル:PHP PSD PhptoShop
posted by SDozono at 16:03| 東京 ☀| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2006年12月28日

WindowsアプリとWEBアプリの統合化

最近、必要に迫られて、「WindowsアプリとWEBアプリを統合化したシステム」の開発に取り掛かりました。

Delphiをひさしぶりに触り、Windowsプログラミングの醍醐味を再体験しています。Socketプログラミングは思ったよりずっと楽でした。

WEBアプリをさらに発展させることができるのではないかと、PHPフレームワーク以来、久々に興味深い実験+研究になりそうです。
posted by SDozono at 11:00| 東京 ☀| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2006年12月11日

PHPでWindowsのレジストリを操作。

PHPからWindowsのレジストリを操作するクラス。
何でもできるっ、ていうのは分かりますが、利用する状況を考えるとあまり思い浮かばない……。

Class: Windows Registryhttp://www.phpclasses.org/browse/package/3555.html
posted by SDozono at 06:55| 東京 ☁| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2006年10月24日

IEとSSLとシム技法

mm_menu.js の続き。

1)フレームを使ったPHPアプリを iframe でまとめた。
2)mm_menu.js を使ったところ、メニューが日付セレクトボックスの下にもぐりこむようになった。
3)下記の情報を元に、シム技法を mm_menu.js に追加。

ENGLISH: http://dev2dev.bea.com/pub/a/2005/04/portal_menus.html
JAPANESE: http://www.beasys.co.jp/dev2dev/pub/a/2005/4/portal_menus..html

4)ところが今回SSLを利用したところ、セキュリティダイアログが表示されるようになってしまった。結論としては下記の情報が該当した。

PRB: Security Warning Message Occurs When You Browse to a Page That Contains an IFRAME Through SSL
http://support.microsoft.com/kb/261188/EN-US/
Internet Explorer で SSL 接続時にセキュリティ情報のダイアログ表示される
http://support.microsoft.com/kb/261188/ja

で結局、dummy.html を作り、iframeに'SRC='を追加したところ、エラーが表示されなくなった。スマートな解法ではないかもしれないが、解決できたのでよしとする。

posted by SDozono at 16:41| 東京 🌁| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2006年09月30日

WebORB for PHP

どこからどう手をつけてよいものかよく分かりませんが、デモは面白くみました。

WebORB for PHP is available!
http://www.themidnightcoders.com/weborb/php/index.htm

リッチアプリケーションの実現方法をいろいろな人が模索+実現している段階ですが、生き残ってゆくのはどういうアプローチなんでしょうか……。
ラベル:PHP weborb
posted by SDozono at 22:52| ロサンゼルス 🌁| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

PHPアスペクト志向プログラミング

phpaspect は面白い。
Railsのあとに続くのはこれかも。
インタプリタ言語のPHPの上で、さらに完成コードを“生成する”という考え方にひかれる。

現在、CakePHP の bake.php を拡張させたいと頭の中であれこれ画策中。
もう考えている人はいると思うんだけど、

bake.php + phpMyEdit + dbQwikSite = superbake.php ということをしてみたいんですよね〜。
ラベル:programming PHP
posted by SDozono at 22:04| ロサンゼルス 🌁| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2006年09月07日

“フレーム”を使ったPHPソースをiframeで一つにまとめる

PHP でプログラムを組めるというのは、"JavaScriptについても素養がある"というのと同じなのだなぁと思う今日この頃です。

しばらく、“フレームを使ってある”PHPソースを iframe を使ってまとめるという作業をしていました。

上下に分かれているフレームだったのですが、PHPで動的に作成しているために、下側の height は長くなったり短くなったりします。これを iframe に入れるとスクロールバーが縦に二つ表示されて具合が悪い。このあたりを解決したかったのですが、下記によい情報がありました。iframe の height を動的に変更する方法です。

http://archivist.incutio.com/viewlist/css-discuss/45869

例えば、iframe の名前が "mainContent"であれば、下記のような JavaScript を準備しておき、

// resizes Iframe according to content
function resizeMe(obj){
docHeight = mainContent.document.body.scrollHeight
obj.style.height = docHeight + 'px'
}

読み込む時に

<iframe onload="resizeMe(this)">

などで読み込むと、うまくいきます。ただこのままだと、中身がない場合には詰まってしまったため、

function resizeMe(obj){
docHeight = mainContent.document.body.scrollHeight
if(docHeight < 600) docHeight = 600;
obj.style.height = docHeight + 'px'
}

などと調整しておきました。見た目は一枚サイトに見えるんですが、それぞれが独立して飛びまくっています。何事もなせばなるんですね〜。




ラベル:PHP javascript iframe
posted by SDozono at 17:24| ロサンゼルス ☁| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

PHPで画像認識

GIF, JPEG, PNG のフォーマットを読み込んで、いちばん使われている色を配列で返す関数。

Class: Color extract
http://www.phpclasses.org/browse/package/3370.html

フォトライブラリなどと組み合わせると、いろいろ面白いことができそうです。
ラベル:画像
posted by SDozono at 11:33| ロサンゼルス ☀| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2006年09月01日

チャレンジレスポンス方式のログインをPHPとJavaScriptで

チャレンジレスポンス方式のログインシステムを使うと、「パスワード盗聴の危険を減らす」ことができる。

ここに図入りで説明。
http://www.ipa.go.jp/security/awareness/administrator/remote/capter6/5.html

これを PHP でコーディングするには?という説明がこちらに。

Secure Logins with Challenge-Response
http://www.ifisgeek.com/tutorials/show/secure_logins_with_challengeresponse

posted by SDozono at 11:30| ロサンゼルス 🌁| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2006年08月18日

SugarCRM を実践・利用中

営業状態・状況をWEB上で共有できる SugarCRM。
様々なグループウェアを試した末、社長の一声で、これが社内ポータルとして動き始めました。

うちの場合には海外事務所も多いので、日本で何が起こっているのかを海外から把握するためなどにも便利かもしれません。出先からいろいろチェックすることも可能です。また、基本的にうちは、開発+営業がビジネスの両輪となっているので、営業ツールとしての充実した機能が何よりの採用理由かと。

技術屋としては、お客様に電話を直接かけることはあまりありませんので、今一つ直接的なメリットが感じ取りにくいのですが、そのうちおいおい実感することもあるかと思います。

で、ひとつ技術屋の出番があったのは、メールの文字化け問題です。
http://docs.sugarforum.jp/index.php?%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EBv4.2
上記の内容なども設定したそうですが、メールの文字化けが直らなかった、ということでした。

たどってみると、現在のサーバの設定が、
ini_set("mbstring.internal_encoding","EUC-JP");

となっていることが問題でした。ただ、これを安易に UTF-8 へと変えてしまうと、サーバの上にあるすべてのアプリケーションが影響を受けますので、それはそれでまた心配です。

で、CRMの config.php の中に、
ini_set("mbstring.internal_encoding","UTF-8");

を加えてしまいました。これで文字化けはまったくなくなります。
Windows ソフトが全盛だった頃は、海外ソフトの文字化け修正なんて考えただけでも面倒な作業だった(バイナリをいじったりとか。)わけですが、オープンソースの場合にはこういうところが便利だと実感します。

そのうち、うちが契約しているクライアントさんのところにも、SugarCRM のインストールサービス+講習会なんかをすることになるかもしれません……。
posted by SDozono at 13:27| ロサンゼルス ☀| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2006年08月17日

PHPパターン集

パターンというのは、“よく使うテクニック・定石”のようなもの。

http://www.patternsforphp.com/index.php?title=Main_Page

情報が増えることを期待。
ラベル:PHP パターン
posted by SDozono at 09:34| ロサンゼルス ☀| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2006年08月08日

PHPで画像識別

いかがわしい画像をフィルタリングできるPHP クラス。
ピクセル単位で色から識別する。

PHP でも画像判別をやればできるかもしれないが、精度・スピードの面での問題はいろいろある。
しかし、開発者も書いているように、ひとつのアイデアとして改良のための意見を集めたいようだ。
ソースは短い。

Class: Image Nudity Filter
http://www.phpclasses.org/browse/package/3269.html
ラベル:class PHP image
posted by SDozono at 17:08| ロサンゼルス ☀| Comment(2) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2006年07月26日

CI のログインサンプル

う〜ん。なかなかいい。
Code Igniter 用のログインサンプル。

http://userauth.bambooinvoice.org/

こういうのは、だれか一人が作れば、みんながそれを使うようになるんだよね。CakePHP用もだれかが作るのは時間の問題……?
posted by SDozono at 22:14| ロサンゼルス ☀| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする
WebとCTI、VoIP技術の高みを目指して - 技術者の24時間
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。