PHPで更新ping送信
このブログ(word press)は標準でping送信機能は備えていますが、自前で開発したブログやホームページにping送信機能を
追加したいときもあるかと思います。
PEARのXML-RPCがインストールされていることにより、動作が可能となります。
また、Googleへのping送信はyahooに比べ、1か所のみ異なります。
以下ソースコードとなりますのでご参考にしてください。
<?php
include_once( ‘XML/RPC.php’ );
include_once( ‘XML/RPC/Server.php’ );
//googleにping送信
Ping_Google(“ブログタイトル”,“ブログのURL”);
//google以外
Ping_Send(“ブログタイトル”,“ブログのURL”);
//googleのpingサーバーに送信する
function Ping_Google($site_title,$site_url){
$ping = array(
‘blogsearch.google.co.jp’ => ‘/ping/RPC2′
);
$param = array(
new XML_RPC_Value($site_title, ’string’),
new XML_RPC_Value($site_url, ’string’)
);
$msg = new XML_RPC_Message(‘weblogUpdates.extendedPing’, $param);
foreach($ping as $pingServer => $pingPath) {
$client = new XML_RPC_Client($pingPath, $pingServer, 80);
$response = $client->send($msg);
if(!$response) {
echo “タイムアウト : “.$pingServer.“<br />”;
}elseif($response->faultCode()) {
echo “送信失敗 : “.$pingServer.“<br />”;
}else {
echo “送信成功 : “.$pingServer.“<br />”;
}
}
}
//google以外のpingサーバーに送信する
function Ping_Send($site_title,$site_url){
$ping = array(
‘ping.fc2.com’ => ‘/’,
‘ping.rss.drecom.jp’ => ‘/’,
‘api.my.yahoo.co.jp’ => ‘/RPC2′,
‘blog.goo.ne.jp’ => ‘/XMLRPC’,
‘ping.bloggers.jp’ => ‘/rpc/’,
‘www.blogpeople.net’ => ‘/servlet/weblogUpdates’,
‘www.blogpeople.net’ => ‘/ping’
);
$param = array(
new XML_RPC_Value($site_title, ’string’),
new XML_RPC_Value($site_url, ’string’)
);
$msg = new XML_RPC_Message(‘weblogUpdates.extendedPing’, $param);
foreach($ping as $pingServer => $pingPath) {
$client = new XML_RPC_Client($pingPath, $pingServer, 80);
$response = $client->send($msg);
if(!$response) {
echo “タイムアウト : “.$pingServer.“<br />”;
}elseif($response->faultCode()) {
echo “送信失敗 : “.$pingServer.“<br />”;
}else {
echo “送信成功 : “.$pingServer.“<br />”;
}
}
}
?>
phpでAU文字化け対策
php+smartyで携帯サイトを制作する時、文字コードにUTFを使用していますが、docomo、ソフトバンクは特に問題ありません。
AUだけ何故か文字化けしています。調べてみるとAUはSHIFT-JISのみ対応の為、smartyテンプレートをshift-jisで作成し、
phpでは以下コード追加により改善されました。
【PHP】
mb_convert_encoding($value, “SJIS-win”, “UTF-8″);
【SMARTYテンプレート】
<?xml version=”1.0″ encoding=”SHIFT-JIS”?>
・・・
<meta http-equiv=”Content-Type” content=”text/html;charset=Shift_JIS”>
docomo,softbank,auなどの環境変数
PHPでPC、モバイルサイトを作る時、環境変数を取得し、分岐するよう良くコーディングします。
以下イメージです。また、テンプレートにはsmartyを使います。
//環境変数取得
if(strstr($_SERVER['HTTP_USER_AGENT'],”DoCoMo“)){
$env = ‘i’;
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],”Vodafone“)){
$env = ‘i’;
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],”SoftBank“)){
$env = ‘i’;
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],”MOT-“)){
$env = ‘i’;
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],”J-PHONE“)){
$env = ‘i’;
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],”KDDI“)){
$env = ‘ez’;
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],”UP.Browser“)){
$env = ‘i’;
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],”WILLCOM“)){
$env = ‘ez’;
}else{
$env = ‘pc’; //PC
}
if ($env == “pc“){
$smarty->display(‘pc.tpl‘); //PC用テンプレート表示
}else{
$smarty->display(‘i.tpl’); //モバイル向けテンプレート表示
}
- pcの場合は「pc.tpl」を表示し、携帯の場合は「i.tpl」を表示します。
特定健診の結果XML取り込みプログラム
私が今まで担当した開発案件で一番興味深かったのが都内でお世話になった企業で開発した「特定健診XMLデータ取り込み」プログラムです。
開発言語にはVB5、データベースにはSQLServer2000を使いました。
新規案件ということもあり、業界に対する知識を深めたことを今でも覚えています。
[特定検診HP]
http://tokuteikenshin.jp/index.shtml
写真ではAccess2007を使ったアプリケーションです。
簡単に説明しますと、40~74歳の健康保険に加入している方はお近くの医療機関で特定健診を受けます。
特定健診とは様々な検査を元に、「その方が肥満なのか、健康なのか否か」判断し、例えば結果が悪ければ
そのあとに特定保険指導をさらにうけます。
プログラムでは健診結果を受け取り、判断、受診者が特定保健指導の対象であれば案内を出すことが出来ます。
この案件だけは非常に興味深かったです。
———————————————————————————————————————–
システム開発のご相談、お申込みを承っています。
TEL:053-445-1221 (担当:開発部 具志堅)
e-mail:jim@ens.ne.jp
visual basic6 (VB6)でIE操作
VB6からHTMLを操作することが出来ます。以前担当した案件で開発したこともありました。
フォームが起動したときに「http://google.co.jp」を立ち上げるようにします。
1.【参照設定】⇒Miscrosoft Internet Control をクリックします。
2.formに以下を追加します。
Private Sub Form_Load()
Dim objIE As InternetExplorer
Set objIE = CreateObject(“InternetExplorer.Application”)
With objIE
.Navigate2 = “http://google.co.jp”
While .ReadyState <> 4 Or .Busy = True
DoEvents
Wend
.Visible = True
end with
end sub
3.これでF5キーでプログラムを立ち上げ、googleが表示されます。
後日、フォームやリンクボタン操作な述べようかなと思います。
Debianでapache2構築
昨年、新しいDELLサーバーにDebian lenny(Linuxディストリビューション)をインストールし、本格的なサーバー運用を始めました。
ここではDebian lennyにWEBサーバー(Apache2)、perl、php、mysqlのインストール手順を掲載します。
Apache2のインストール
- コマンド)# aptitude install apache2-mpm-prefork
インストール終了です。次に設定ファイルを修正していきます。
1./etc/apache2/conf.d/charset
DirectoryIndex index.html index.htm index.shtml index.cgi index.php (追加)
※phpやcgiを使用しない場合はindex.cgi index.phpを追加する必要がありません。
$ sudo /etc/init.d/apache2 restart
PERLのインストール
$ apt-get install perl
PHPのインストール
$ aptitude install php5
$ aptitude install libapache2-mod-php5
$ aptitude install php5-mysql
$ install mysql-server
$ aptitude install php5
| aptitude install php5 |
| aptitude install libapache2-mod-php5 |
| aptitude install php5-mysql |
| aptitude install mysql-server |
au,docomo,softbank携帯向けサイトデザイン
携帯サイト制作する上で欠かせないのがCSSです。
通常のPCではCSSを外部から読み込んだり、あるいは直接<head></head>間に追加したり、そこでいざdocomoで確認すると
- 外部CSSは使用不可、headタグ内にソース埋め込んでも無効になる。
ことが判明しました。ところが最近機種ではCSS対応は出来ているものの、上記を踏まえて、
- <div>タグにstyle属性追加。例)<div style=”background-color:#000000;text-align:center”>
- 文字装飾は<span>タグで対応。例)<span style=”color:#FA79B9; font-size:small;”>
少し面倒ですがいずれ、全ての機種が外部CSSに対応出来れば携帯向けテンプレートもかなり柔軟性が上がるかと思いますね(^-^;
php+smartyで携帯サイト構築
PC、モバイルサイトの構築にphp+smartyを使用しています。
開発にはphp、データベースにはmysqlを使い、pc側は特に問題がないですが、softbank、docomoでは正常に表示するのにAUだけ文字化けします。
調査の結果、auは文字コードSHIFT-JISのみ対応の為、htmlテープレートはUTF-8で記述していました。
以下のように修正で改善すること成功。
1.htmlテンプレート
- xhtml :<?xml version=”1.0″ encoding=”shift-jis”?>
- metaタグ:<meta http-equiv=”Content-type” content=”text/html; charset=Shift_JIS”>
2.phpからmysql呼び出し
- データベースの文字コードがUTF-8の為、1行取得ごとにSJISに変換する処理を追加。
- mb_convert_encoding(“取得した行”, “SJIS-win”, “UTF-8″);
浜松市のIT企業、ENS-NETのご紹介
ENS-NETの技術・開発部の具志堅です。
IT情報をはじめとするトピックや、趣味&ネタを掲載していこうと思います。
サーバー構築ノウハウや開発話まで様々。
個人的にVisual Basic6、.NETを使ったデスクトップアプリ開発が趣味です。


