
防犯や防災時に役立グッズが多数 「備えて安心グッズのお店」
お得なわけあり商品を多数取り揃え 「訳ありお得館」
厳選デジタルグッズのお店 「おもしろデジモノのデジモノ屋」
厳選食品お取り寄せのお店 「まんぷく屋」
美と健康を考えるお店 「La beaut」
FPDFでPHPからPDFの作成 ― 2012年01月31日 18時09分29秒
社内で使用するグループウェアを作成しています。
社外からも利用できることが条件だったので、
レンタルサーバーを利用するという前提になったので、
PHPで作成することにしました。
最終的にはJavaScriptでUIも作りこむ予定ですが、
今はとりあえず、PHPで動くものを作っています。
その中で、PDFが必要ということで探したところ、
FPDFというのがあったので、早速試してみました。
FPDFをダウンロードしてサンプルを実行すると、
PDFが表示されたので、使えそうかなと思ったのですが、
日本語を表示させようとすると化けています。
調べてみると、日本語には対応していないそう!
でもMBFPDFというのが日本語に対応しているそうで、
ダウンロードしようとしたら、リンクが切れていて、
ダウンロードできません。
もう一つ、japanese.zipというのもあるんですが、
機能的には劣るようなことが書かれていたので、
MBFPDFのファイルが落とせないか探していたら、
無事見つけることができ、早速インストールして、
動かしてみたのですが、エラー発生!
どうやら非推奨エラーのようです。
将来的に使われなくなる機能を使っているときに出る警告です。
とりあえず、出ないようにしてテストをします。
今回は、ローカルのPC上にサーバーを構築しているので、
php.iniを修正することで対処しました。
error_reporting = E_ALL | E_STRICT
↓
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
これでWebサーバーを再起動させたら、エラーは表示されなくなりました。
ただ、まだ文字化けしています。
また調べてみると、サンプルで作ったphpファイルのエンコードをShift-JISにしないといけないようです。
私は、ずっとUTF-8で保存していたので、Shift-JISに変更して
保存してから実行すると、無事表示されました。
とりあえず、ローカルの環境で使えるようになりました。
レンタルサーバーのphpのバージョンを調べてみると、
5.2.17が使われていて、現時点ではおそらくエラーはでないと思うのですが、
いつバージョンアップするかわからないので、将来的に不安です。
社外からも利用できることが条件だったので、
レンタルサーバーを利用するという前提になったので、
PHPで作成することにしました。
最終的にはJavaScriptでUIも作りこむ予定ですが、
今はとりあえず、PHPで動くものを作っています。
その中で、PDFが必要ということで探したところ、
FPDFというのがあったので、早速試してみました。
FPDFをダウンロードしてサンプルを実行すると、
PDFが表示されたので、使えそうかなと思ったのですが、
日本語を表示させようとすると化けています。
調べてみると、日本語には対応していないそう!
でもMBFPDFというのが日本語に対応しているそうで、
ダウンロードしようとしたら、リンクが切れていて、
ダウンロードできません。
もう一つ、japanese.zipというのもあるんですが、
機能的には劣るようなことが書かれていたので、
MBFPDFのファイルが落とせないか探していたら、
無事見つけることができ、早速インストールして、
動かしてみたのですが、エラー発生!
どうやら非推奨エラーのようです。
将来的に使われなくなる機能を使っているときに出る警告です。
とりあえず、出ないようにしてテストをします。
今回は、ローカルのPC上にサーバーを構築しているので、
php.iniを修正することで対処しました。
error_reporting = E_ALL | E_STRICT
↓
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
これでWebサーバーを再起動させたら、エラーは表示されなくなりました。
ただ、まだ文字化けしています。
また調べてみると、サンプルで作ったphpファイルのエンコードをShift-JISにしないといけないようです。
私は、ずっとUTF-8で保存していたので、Shift-JISに変更して
保存してから実行すると、無事表示されました。
とりあえず、ローカルの環境で使えるようになりました。
レンタルサーバーのphpのバージョンを調べてみると、
5.2.17が使われていて、現時点ではおそらくエラーはでないと思うのですが、
いつバージョンアップするかわからないので、将来的に不安です。
Webベースのグループウェア開発 ― 2012年01月06日 11時43分18秒
Androidの調査もまだ途中なのですが、Webベースのグループウェアの開発を
すぐに始めるようにとのことで、Androidは途中ですが開発にかかることになりました。
個人的には、Androidとも連携させたいと考えています。
そもそも、Webベースのグループウェアはフリーのものもいろいろあるので、
それも見せたのですが、結局作ることになりました。
一般的なグループウェアとはやりたいことが違っているので、
結果作ろうということになりました。
Webベースなのに、マウスのドラッグでスケジュールの範囲を変更するとか、
要求が結構高いので、まずはプロトタイプとして通常のグループウェアと同じような
インターフェースのものを作り、それを基にカスタマイズするなりして
作っていきたいと思っています。
個人的にはグーグルカレンダーで良いんじゃないのって思うんですけどね!
言語とデータベースはPHPとMySQLにします。
Webベースということで、レンタルサーバーなどで一番対応が多いこの組み合わせをベースに、
最終的には、JavaScriptも使って作成していくことになると思います。
しかし、思いつきで言っているのか、定期的に新しい事を言ってくるので、
結構大変です。
なんかどれも中途半端になりそうで・・・!?
すぐに始めるようにとのことで、Androidは途中ですが開発にかかることになりました。
個人的には、Androidとも連携させたいと考えています。
そもそも、Webベースのグループウェアはフリーのものもいろいろあるので、
それも見せたのですが、結局作ることになりました。
一般的なグループウェアとはやりたいことが違っているので、
結果作ろうということになりました。
Webベースなのに、マウスのドラッグでスケジュールの範囲を変更するとか、
要求が結構高いので、まずはプロトタイプとして通常のグループウェアと同じような
インターフェースのものを作り、それを基にカスタマイズするなりして
作っていきたいと思っています。
個人的にはグーグルカレンダーで良いんじゃないのって思うんですけどね!
言語とデータベースはPHPとMySQLにします。
Webベースということで、レンタルサーバーなどで一番対応が多いこの組み合わせをベースに、
最終的には、JavaScriptも使って作成していくことになると思います。
しかし、思いつきで言っているのか、定期的に新しい事を言ってくるので、
結構大変です。
なんかどれも中途半端になりそうで・・・!?
Install Shieldを使ったインストーラーの作成 ― 2011年12月12日 12時10分26秒
今の会社では、出来上がったアプリケーションの配布用プログラムを、
そのままCD等に焼いてフォルダごとコピーする方法をとっていました。
しかし、レジストリ情報を書き換える必要があるプログラムの場合、
こちらで設定を行う必要がでてくるので、
インストーラーで対応したいという要望がでているので、
調べてみました。
VisualStudio2010 Professionalには、Windowsインストーラーと、
InstallShieldが使えるようですが、調べたところ次期バージョンからは、
Windowsインストーラーは搭載しないということらしいので、
InstallShieldを使って、インストーラーを作ってみました。
InstallShieldは初めて使う場合にユーザー登録が必要ということで、
登録処理を行いました。
これは、他の会社で行っていることと大差はありません。
プロジェクトからInstallShieldを選択して、インストーラー作成用のプロジェクトを作ります。
インストーラープロジェクト自体は、通常のアプリケーションのプロジェクト作成と同じですので、
名前や場所、ソリューション名などを記入し作成します。
Project assistantの画面の下にあるアイコンを順番に設定していけば、
インストーラーを作成する準備が整います。
一番左の「Application Information」では、
会社名やアプリケーション名、バージョン情報などを入力します。
「Installation Requirements」では、インストールできるOSを制限したり、
フレームワークなどの必須プログラムの確認を行うかどうかを指定します。
「Installation Architecture」はVisualStudio2010に入っているバージョンでは
使用できないので、飛ばします。
「Application Files」では、インストールするファイルを選択します。
ここでは、プログラムや設定ファイルなどを指定します。
フォルダ単位でも指定できるので、プログラムや設定ファイルなどをまとめている場合には、
フォルダ毎指定することもできます。
「Application Shortcuts」では、ショートカットを作成するファイルを指定します。
通常は起動するプログラムを登録しますが、ツールなどがある場合は、
そのプログラムを追加したり、プログラムごとにスタートメニューやデスクトップ上など、
登録場所の指定も行えます。
「Application Registry」はレジストリ情報を登録します。
ここでは、スタートアップの登録を行っています。
「Installation Interview」では、インストール先の変更や、ユーザー名の入力などを
許可するかどうかを指定します。
現時点では、すべてNoで指定し、変更などは許可しないように指定しています。
以上の設定を行えばインストーラーの作成準備はほぼ終わりです。
ほぼと言っているのは、アシスタント画面では設定できない情報を変更する必要があるためです。
InstallShieldでは、初期設定で言語が英語に設定されているため、このままでは英語でインストーラーが起動します。
海外向けの場合は問題ないですが、国内で使用する場合は日本語の方がわかりやすいのと、英語の設定で
日本語の情報が入っていると、ビルドの際にエラーになるので、会社名などを日本語で指定している場合には、
言語設定を日本語にします。
設定方法ですが、ソリューションエクスプローラーから、「Organaize Your Setup」の「General Information」
を選択します。
「GeneralInformation」の画面の「Setup Language」を日本語に変更します。
これで言語設定が日本語になり、インストーラーを起動した際に日本語で表示されます。
次に設定する必要があるのが、.NETFramewworkなどのインストールプログラムをインストーラーに含めることです。
開発の際に、.NETFrameworkを使って開発することがほとんどですが、インストールするPCに入っていない場合、
自動的にインストールを行うようにすることができます。
特に海外では、インターネットの環境が整っていなかったり、PCがネットワークに接続していない場合もあり、
インストールができない状況に陥るのを回避するために、必ず使用しているフレームワークを設定しておきます。
設定方法ですが、「Specify Application Data」の「Redistributables」を選択します。
「Redistributables」画面が表示されたら、一覧の中から、必要な物にチェックを入れます。
次に、選択したライブラリやフレームワークの「Location」を確認します。
「Needs to be downloaded」と表示されている場合は、インストール用のプログラムが存在しないので、
ビルド時にエラーになります。
マウスの右クリックで「Download Selected item...」を選択すると、ダウンロードされます。
「Installed Locally」と表示がかわればOKです。
以上で設定が完了しましたので、ビルドを行いエラーが出なければ作成されています。
後は、適当なPCでセットアップを実行し問題がないか確認すればOKです。
順番に設定を追加していけば、問題なく作成されると思います。
そのままCD等に焼いてフォルダごとコピーする方法をとっていました。
しかし、レジストリ情報を書き換える必要があるプログラムの場合、
こちらで設定を行う必要がでてくるので、
インストーラーで対応したいという要望がでているので、
調べてみました。
VisualStudio2010 Professionalには、Windowsインストーラーと、
InstallShieldが使えるようですが、調べたところ次期バージョンからは、
Windowsインストーラーは搭載しないということらしいので、
InstallShieldを使って、インストーラーを作ってみました。
InstallShieldは初めて使う場合にユーザー登録が必要ということで、
登録処理を行いました。
これは、他の会社で行っていることと大差はありません。
プロジェクトからInstallShieldを選択して、インストーラー作成用のプロジェクトを作ります。
インストーラープロジェクト自体は、通常のアプリケーションのプロジェクト作成と同じですので、
名前や場所、ソリューション名などを記入し作成します。
Project assistantの画面の下にあるアイコンを順番に設定していけば、
インストーラーを作成する準備が整います。
一番左の「Application Information」では、
会社名やアプリケーション名、バージョン情報などを入力します。
「Installation Requirements」では、インストールできるOSを制限したり、
フレームワークなどの必須プログラムの確認を行うかどうかを指定します。
「Installation Architecture」はVisualStudio2010に入っているバージョンでは
使用できないので、飛ばします。
「Application Files」では、インストールするファイルを選択します。
ここでは、プログラムや設定ファイルなどを指定します。
フォルダ単位でも指定できるので、プログラムや設定ファイルなどをまとめている場合には、
フォルダ毎指定することもできます。
「Application Shortcuts」では、ショートカットを作成するファイルを指定します。
通常は起動するプログラムを登録しますが、ツールなどがある場合は、
そのプログラムを追加したり、プログラムごとにスタートメニューやデスクトップ上など、
登録場所の指定も行えます。
「Application Registry」はレジストリ情報を登録します。
ここでは、スタートアップの登録を行っています。
「Installation Interview」では、インストール先の変更や、ユーザー名の入力などを
許可するかどうかを指定します。
現時点では、すべてNoで指定し、変更などは許可しないように指定しています。
以上の設定を行えばインストーラーの作成準備はほぼ終わりです。
ほぼと言っているのは、アシスタント画面では設定できない情報を変更する必要があるためです。
InstallShieldでは、初期設定で言語が英語に設定されているため、このままでは英語でインストーラーが起動します。
海外向けの場合は問題ないですが、国内で使用する場合は日本語の方がわかりやすいのと、英語の設定で
日本語の情報が入っていると、ビルドの際にエラーになるので、会社名などを日本語で指定している場合には、
言語設定を日本語にします。
設定方法ですが、ソリューションエクスプローラーから、「Organaize Your Setup」の「General Information」
を選択します。
「GeneralInformation」の画面の「Setup Language」を日本語に変更します。
これで言語設定が日本語になり、インストーラーを起動した際に日本語で表示されます。
次に設定する必要があるのが、.NETFramewworkなどのインストールプログラムをインストーラーに含めることです。
開発の際に、.NETFrameworkを使って開発することがほとんどですが、インストールするPCに入っていない場合、
自動的にインストールを行うようにすることができます。
特に海外では、インターネットの環境が整っていなかったり、PCがネットワークに接続していない場合もあり、
インストールができない状況に陥るのを回避するために、必ず使用しているフレームワークを設定しておきます。
設定方法ですが、「Specify Application Data」の「Redistributables」を選択します。
「Redistributables」画面が表示されたら、一覧の中から、必要な物にチェックを入れます。
次に、選択したライブラリやフレームワークの「Location」を確認します。
「Needs to be downloaded」と表示されている場合は、インストール用のプログラムが存在しないので、
ビルド時にエラーになります。
マウスの右クリックで「Download Selected item...」を選択すると、ダウンロードされます。
「Installed Locally」と表示がかわればOKです。
以上で設定が完了しましたので、ビルドを行いエラーが出なければ作成されています。
後は、適当なPCでセットアップを実行し問題がないか確認すればOKです。
順番に設定を追加していけば、問題なく作成されると思います。
AndroidでHTTP通信3 ― 2011年11月22日 11時38分58秒
サーバー側のプログラムが完成したので、Android側のプログラムを作成します。
まずは、簡単にソフトを立ち上げたらサーバーに接続し、画面に結果を出すだけの
プログラムを作ります。
サーバーへの接続ですが、いくつか方法があるようなのですが、
今回は、DefaultHttpClientを利用したものと、
HttpURLConnectionを利用したものをつくります。
基本的にはurlを渡して結果を返すだけです。
urlにはパラメータも設定済みで受け取る予定です。
まずは、DefaultHttpClientを使用してGETで接続する場合のサンプルソースです。
*******************************************
public String doGet( String url )
{
HttpResponse response = null;
try
{
HttpGet httpget = new HttpGet( url );
DefaultHttpClient client = new DefaultHttpClient();
response = client.execute( httpget );
int status = response.getStatusLine().getStatusCode();
if ( status != HttpStatus.SC_OK )
throw new Exception( "" );
return EntityUtils.toString( response.getEntity(), "UTF-8" );
}
catch ( Exception e )
{
e.printStackTrace();
return null;
}
}
*******************************************
urlを受け取ったら、executeで通信処理を行っています。
responseで結果を受け取り返しています。
続いてはHttpURLConnectionを利用したサンプルです。
*******************************************
public String doGet2( String addr )
{
HttpURLConnection http = null;
InputStream in = null;
try
{
URL url = new URL(addr);
http = (HttpURLConnection)url.openConnection();
http.setRequestMethod("GET");
http.connect();
in = http.getInputStream();
byte[] line = new byte[1024];
in.read(line);
String src = new String(line);
return src;
}
catch(Exception e)
{
return null;
}
finally
{
try
{
if (http != null) http.disconnect();
if (in != null) in.close();
}
catch (Exception e)
{
}
}
*******************************************
こちらもurlを受け取りconnectで通信を行います。
getInputStreamで結果を受け取り内容を返しています。
次は、メインの作成を行って通信結果を確認したいと思います。
まずは、簡単にソフトを立ち上げたらサーバーに接続し、画面に結果を出すだけの
プログラムを作ります。
サーバーへの接続ですが、いくつか方法があるようなのですが、
今回は、DefaultHttpClientを利用したものと、
HttpURLConnectionを利用したものをつくります。
基本的にはurlを渡して結果を返すだけです。
urlにはパラメータも設定済みで受け取る予定です。
まずは、DefaultHttpClientを使用してGETで接続する場合のサンプルソースです。
*******************************************
public String doGet( String url )
{
HttpResponse response = null;
try
{
HttpGet httpget = new HttpGet( url );
DefaultHttpClient client = new DefaultHttpClient();
response = client.execute( httpget );
int status = response.getStatusLine().getStatusCode();
if ( status != HttpStatus.SC_OK )
throw new Exception( "" );
return EntityUtils.toString( response.getEntity(), "UTF-8" );
}
catch ( Exception e )
{
e.printStackTrace();
return null;
}
}
*******************************************
urlを受け取ったら、executeで通信処理を行っています。
responseで結果を受け取り返しています。
続いてはHttpURLConnectionを利用したサンプルです。
*******************************************
public String doGet2( String addr )
{
HttpURLConnection http = null;
InputStream in = null;
try
{
URL url = new URL(addr);
http = (HttpURLConnection)url.openConnection();
http.setRequestMethod("GET");
http.connect();
in = http.getInputStream();
byte[] line = new byte[1024];
in.read(line);
String src = new String(line);
return src;
}
catch(Exception e)
{
return null;
}
finally
{
try
{
if (http != null) http.disconnect();
if (in != null) in.close();
}
catch (Exception e)
{
}
}
*******************************************
こちらもurlを受け取りconnectで通信を行います。
getInputStreamで結果を受け取り内容を返しています。
次は、メインの作成を行って通信結果を確認したいと思います。
AndroidでHTTP通信2 ― 2011年11月17日 18時05分46秒
まずは、PHP側のプログラムを作成します。
今回はテストなので、簡単なものです。
検索するためのIDを受け取り、DBを参照してデータをJSON形式にして返すだけです。
*****************************************************
<?php
$st_id = @$_GET["ID"];
$sv = "localhost";
$dbname = "Android";
$user = "Android";
$pass = "Android";
$enc_disp = "UTF-8";
$enc_db ="UTF-8";
$conn = mysql_connect($sv,$user, $pass) or die("接続エラー1");
mysql_set_charset("utf8", $conn);
mysql_select_db($dbname) or die("接続エラー2");
$sql = "SELECT * FROM testdb where ID = ".$st_id." ORDER BY ID;";
$res = mysql_query($sql,$conn) or die("データ抽出エラー");
$row = mysql_fetch_array($res,MYSQL_ASSOC);
$name = $row["Name"];
$other = $row["Other"];
$obj = array(
'ID' => $st_id,
'Name' => $name,
'Other' => $other
);
if (!extension_loaded("json")) {
dl("./json.so"); // エクステンションのロード
}
$encode = json_encode($obj);
echo $encode;
?>
*****************************************************
したの10行ほどのところがJSONの処理です。
MySQLにデータを登録して、Webでテストしてみました。
IDに1、Nameに「あいうえお」、Otherに「ア行」と登録しました。
出力された結果がこれです。
{"ID":"1","Name":"\u3042\u3044\u3046\u3048\u304a","Other":"\u30a2\u884c"}
日本語の部分は化けてますが、とりあえずJSON形式にはなっています。
次は、Androidで受け取る部分を作成していきます。
今回はテストなので、簡単なものです。
検索するためのIDを受け取り、DBを参照してデータをJSON形式にして返すだけです。
*****************************************************
<?php
$st_id = @$_GET["ID"];
$sv = "localhost";
$dbname = "Android";
$user = "Android";
$pass = "Android";
$enc_disp = "UTF-8";
$enc_db ="UTF-8";
$conn = mysql_connect($sv,$user, $pass) or die("接続エラー1");
mysql_set_charset("utf8", $conn);
mysql_select_db($dbname) or die("接続エラー2");
$sql = "SELECT * FROM testdb where ID = ".$st_id." ORDER BY ID;";
$res = mysql_query($sql,$conn) or die("データ抽出エラー");
$row = mysql_fetch_array($res,MYSQL_ASSOC);
$name = $row["Name"];
$other = $row["Other"];
$obj = array(
'ID' => $st_id,
'Name' => $name,
'Other' => $other
);
if (!extension_loaded("json")) {
dl("./json.so"); // エクステンションのロード
}
$encode = json_encode($obj);
echo $encode;
?>
*****************************************************
したの10行ほどのところがJSONの処理です。
MySQLにデータを登録して、Webでテストしてみました。
IDに1、Nameに「あいうえお」、Otherに「ア行」と登録しました。
出力された結果がこれです。
{"ID":"1","Name":"\u3042\u3044\u3046\u3048\u304a","Other":"\u30a2\u884c"}
日本語の部分は化けてますが、とりあえずJSON形式にはなっています。
次は、Androidで受け取る部分を作成していきます。
最近のコメント