ブログ記事のリスト|星屋工作室

星屋工作室

星屋工作室 - 映画とカレーが好きでSEOに燃えています。山口県周南市ではたらくサラリーマンの仕事、趣味、パソコンの足跡的ブログです。

PHP の最近のブログ記事


MagpieRSSをダウンロードして適当なフォルダに保存し、

読み込んだ最新記事一覧を表示するページを作成する。

rss.php

<?php
require_once('magpierss/rss_fetch.inc');
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');

$count = 5; //最新記事表示件数
$length = 60; //表示する日記記事の最大文字数
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>RSS表示スクリプト</title>
</head>
<body>
<?php
$url = 'http://hoshiya.biz/index.xml';
$rss = fetch_rss($url);
echo "<ul>";
array_splice($rss->items, $count);
foreach ($rss->items as $item) {
$href = $item['link'];
$title = mb_convert_encoding($item['title'],"SJIS","auto");
$date = date('Y/m/d H:i:s',parse_w3cdtf($item['dc']['date']));
$description = mb_convert_encoding($item['description'],"SJIS","auto");
if (mb_strlen($description) > $length) {
$description =
mb_strcut($description, 0, $length) . "...";
}
echo "<li>";
echo "<FONT color=\"#ff8040\">(" . $date . ")</FONT> ";
echo "<a href=$href>" . $title . "</a><BR>";
echo $description . "</li>";
}
echo "</ul>";
?>
</body>
</html>

PHP5以上の場合は、

Warning: gmmktime() expects parameter 3 to be long, string given in /home/*******/public_html/magpierss/rss_utils.inc on line **

といったエラーが出ます。

そのときは「rss_utils.inc」の35行目 の

$epoch = gmmktime( $hours, $minutes, $seconds, $month, $day, $year);

 

$epoch = gmmktime( $hours, $minutes, substr($seconds,-2,2), $month, $day, $year);

 

に変更したら正常に表示されました。

参考ページ

http://plaza.rakuten.co.jp/kemusiro/diary/200601150000/

http://d.hatena.ne.jp/ms-k/20051224


[記事編集]

トラックバック(0)

トラックバックURL:


モバイルサイトでよく見る数字の絵文字がありますが、

それを表示するためには携帯電話会社各社の絵文字コードを

使用しますが、携帯電話会社によってコードが異なるため、

ユーザーエージェントを判別して各社の絵文字を設定する必要があります。

 

ユーザーエージェントを判別するPHPのスクリプト

<?php
if (eregi("DoCoMo",$_SERVER['HTTP_USER_AGENT'])){
//ドコモ
$num1="&#xE6E2;";
$num2="&#xE6E3;";
$num3="&#xE6E4;";
$num4="&#xE6E5;";
$num5="&#xE6E6;";
$num6="&#xE6E7;";
$num7="&#xE6E8;";
$num8="&#xE6E9;";
$num9="&#xE6EA;";
$num0="&#xE6EB;";
$numsharp="&#xE6E0;";
}
elseif (eregi("^J-PHONE|^Vodafone|^SoftBank|^MOT-",$_SERVER['HTTP_USER_AGENT'])){
//ソフトバンク
$num1="&#xE21C;";
$num2="&#xE21D;";
$num3="&#xE21E;";
$num4="&#xE21F;";
$num5="&#xE220;";
$num6="&#xE221;";
$num7="&#xE222;";
$num8="&#xE223;";
$num9="&#xE224;";
$num0="&#xE225;";
$numsharp="&#xE210;";
}
elseif (eregi("^UP.Browser|^KDDI|^PDXGW",$_SERVER['HTTP_USER_AGENT'])){
//au (<img localsrc="~~"><img localsrc="~~">が公式な方法)
$num1="&#xF6FB;"; //$num1="<img localsrc="180">;
$num2="&#xF6FC;"; //$num2="<img localsrc="181">;
$num3="&#xF740;"; //$num3="<img localsrc="182">;
$num4="&#xF741;"; //$num4="<img localsrc="183">;
$num5="&#xF742;"; //$num5="<img localsrc="184">;
$num6="&#xF743;"; //$num6="<img localsrc="185">;
$num7="&#xF744;"; //$num7="<img localsrc="186">;
$num8="&#xF745;"; //$num8="<img localsrc="187">;
$num9="&#xF746;"; //$num9="<img localsrc="188">;
$num0="&#xF7C9;"; //$num0="<img localsrc="325">;
$numsharp="&#xF489;"; //$numsharp="<img localsrc="818">;
}
elseif (eregi("DDIPOCKET|WILLCOM",$_SERVER['HTTP_USER_AGENT'])){
//ウィルコム
$num1="&#61631;";
$num2="&#61632;";
$num3="&#61633;";
$num4="&#61634;";
$num5="&#61635;";
$num6="&#61636;";
$num7="&#61637;";
$num8="&#61638;";
$num9="&#61639;";
$num0="&#61630;";
$numsharp="[#]";
}
elseif (eregi("^emobile",$_SERVER['HTTP_USER_AGENT'])){
//イー・モバイル(ドコモと同じ)
$num1="&#xE6E2;";
$num2="&#xE6E3;";
$num3="&#xE6E4;";
$num4="&#xE6E5;";
$num5="&#xE6E6;";
$num6="&#xE6E7;";
$num7="&#xE6E8;";
$num8="&#xE6E9;";
$num9="&#xE6EA;";
$num0="&#xE6EB;";
$numsharp="&#xE6E0;";
}
else {
//PC
$num1="[1]";
$num2="[2]";
$num3="[3]";
$num4="[4]";
$num5="[5]";
$num6="[6]";
$num7="[7]";
$num8="[8]";
$num9="[9]";
$num0="[0]";
$numsharp="[#]";
}
?>

絵文字を表示する場所に以下を記載(例:数字の0の絵文字)

<?php print $num0; ?><a href="http://www.hoshiya.biz/" accesskey="0">トップページへ</a>

 

参考サイト

携帯サイトのaccesskeyの数字画像を表示させるには
http://hoge.secret.jp/blog/2008/05/29/%E6%90%BA%E5%B8%AF%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AEaccesskey%E3%81%AE%E6%95%B0%E5%AD%97%E7%94%BB%E5%83%8F%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%82%8B%E3%81%AB%E3%81%AF/

携帯の文字コードと絵文字の基礎知識|Mobile/Encoding - CodeRepos::Share - Trac
http://coderepos.org/share/wiki/Mobile/Encoding


[記事編集]

トラックバック(0)

トラックバックURL:


PHPで荷物追跡サービスの検索フォームを作ってみる。

宅急便会社の荷物追跡サービスを利用するために、

各会社のホームページを開いてから検索するのは面倒くさいので、

イントラネット等利用するため、

運送会社の選択と、伝票番号の入力で、

各会社の検索結果ページが表示されるようにフォームを作ってみた。

 

とりあえず、

ヤマト運輸、佐川急便、日本郵便(ゆうパック・エクスパック)

の検索をしてみる。

 

動作としては、

テキストエリアに伝票番号を入力し、

会社を選択して「検索」を押すと、

各会社の検索結果ページが表示が新規画面で表示されるという物です。

 

PHPのページ単体で検索ページを表示する場合

nimotsu.php

(テストページはこちら→http://hoshiya.biz/nimotsu_search/nimotsu.php

<?php
//エラー処理
$kaisha = (!isset($_POST['kaisha'])) ? null : $kaisha = $_POST['kaisha'];
$denpyou = (!isset($_POST['denpyou'])) ? null : $denpyou = $_POST['denpyou'];
$submit = (!isset($_POST['submit'])) ? null : $submit = $_POST['submit'];
//URL設定
//クロネコヤマト
$url['1'] = "http://jizen.kuronekoyamato.co.jp/jizen/servlet/crjz.b.NQ0010?id=".$denpyou;
//佐川急便
$url['2'] = "http://k2k.sagawa-exp.co.jp/p/web/okurijosearch.do?okurijoNo=".$denpyou;
//日本郵便 ゆうパック・EXPACK・ポスパケット
$url['3'] = "http://tracking.post.japanpost.jp/service/singleSearch.do?org.apache.struts.taglib.html.TOKEN=&searchKind=S002&locale=ja&SVID=&reqCodeNo1=".$denpyou;
//伝票番号が入力されていれば検索ページを表示
if (isset($denpyou)){
header("Location: ".$url["$kaisha"]);
}
else {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>荷物追跡</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<br />
<input name="denpyou" type="text" id="denpyou" value="" />
<br />
<label for="kaisha">会社選択</label>
<br />
<input name="kaisha" type="radio" id="kaisha" value="1" checked />
ヤマト運輸<br />
<input name="kaisha" type="radio" id="kaisha" value="2" />
佐川急便<br />
<input name="kaisha" type="radio" id="kaisha" value="3" />
ゆうパック・EXPACK<br />
<input name="submit" type="submit" id="submit" value="検索" />
</form>
</body>
</html>
<?php
}
?>

 

HTMLフォームとPHPの検索ページ表示の2ファイルを使う場合

form.html

(テストページはこちら→http://hoshiya.biz/nimotsu_search/form.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>荷物追跡サービス検索</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="search.php" target="_blank">
<label for="denpyou">伝票番号</label>
<br />
<input name="denpyou" type="text" id="denpyou" />
<br />
<label for="kaisha">会社選択</label>
<br />
<input name="kaisha" type="radio" id="kaisha" value="1" checked />
ヤマト運輸<br />
<input name="kaisha" type="radio" id="kaisha" value="2" />
佐川急便<br />
<input name="kaisha" type="radio" id="kaisha" value="3" />
ゆうパック・EXPACK<br />
<input name="submit" type="submit" id="submit" value="検索" />
</form>
</body>
</html>

 

search.php

<?php
//エラー処理
$kaisha = (!isset($_POST['kaisha'])) ? null : $kaisha = $_POST['kaisha'];
$denpyou = (!isset($_POST['denpyou'])) ? null : $denpyou = $_POST['denpyou'];
$submit = (!isset($_POST['submit'])) ? null : $submit = $_POST['submit'];
//URL設定
$url['1'] = "http://jizen.kuronekoyamato.co.jp/jizen/servlet/crjz.b.NQ0010?id=".$denpyou;
$url['2'] = "http://k2k.sagawa-exp.co.jp/p/web/okurijosearch.do?okurijoNo=".$denpyou;
$url['3'] = "http://tracking.post.japanpost.jp/service/singleSearch.do?org.apache.struts.taglib.html.TOKEN=&searchKind=S002&locale=ja&SVID=&reqCodeNo1=".$denpyou;

if (empty($denpyou)){
echo "Error! is empty denpyou number";
}
else {
header("Location: ".$url["$kaisha"]);
}
?>

 

ちなみにテスト





ヤマト運輸
佐川急便
ゆうパック・EXPACK

 

改造の余地はあるもののとりあえずは使える。

 

 

Javascript版は以下をご参照ください。

Javascriptで宅急便各社の荷物追跡サービスの検索結果を表示するフォームを作る
http://hoshiya.biz/2009/09/javascript-3.html


[記事編集]

トラックバック(0)

トラックバックURL:


とりあえず時間がないので忘れないようにメモ。

以下のサイトを参照

 

PHPでYahoo!API - phpspot
http://phpspot.net/php/pgphp_Yahoo_API.html
PHPでYahoo!API - phpspot

 

これを利用していじくっている最中のページ

http://hoshiya.biz/yapi/web.php

 

上記を元にYahoo!検索で出力される被リンクの結果をXMLで受け取り、

自分のサイトに表示するスクリプトに挑戦。

ちなみにhttp://hoshiya.bizの被リンクをリクエスト

 

インデックス検索結果 - サイトエクスプローラー - Yahoo!検索
http://siteexplorer.search.yahoo.co.jp/advsearch?p=http://hoshiya.biz&st=inlinks

 

上記の結果をXMLで読み込みたいわけなんですが、

どこでXMLを吐き出しているのかを検索中。

 

そんなこんなで見つけた「バックリンクチェッカー

PHPのスクリプトを配布してあったので、設置してみた。

http://hoshiya.biz/blink.php


[記事編集]

トラックバック(0)

トラックバックURL:


ページにアクセスするごとに、

ランダムに選択されたアフィリエイトのバナーを表示するスクリプト。

 

「banner.php」を以下の内容でルートに作成。

(例:http://www.example.com/banner.php)

<?php

$bnSrc[0]='<a href="http://www.example.com/" target="_blank"><img src="http://www.example.com/banner1.jpg" alt="バナー1" border="0" /></a>';

$bnSrc[1]='<a href="http://www.example.com/" target="_blank"><img src="http://www.example.com/banner2.jpg" alt="バナー2" border="0" /></a>';

$bnSrc[2]='上記同様にバナーのタグを入れる';

$n = mt_rand(0,count($bnSrc)-1);

$bn = $bnSrc[$n];

echo $bn;

?>

 

PHPファイルのバナーを表示したい箇所に以下のコードを記述。

(例えば、http://www.example.com/index.phpの場合)

<?php
$openfile = file_get_contents('http://www.example.com/banner.php');//
echo $openfile;//
?>

 

こでだけでOK。

 

 

Javascriptで同じことをする方法は以下を参照

http://hoshiya.biz/2009/05/javascript.html


[記事編集]

トラックバック(1)

トラックバックURL:

ページにアクセスするごとに、 ランダムに選択されたアフィリエイトのバナーを表示す... 続きを読む