スマフォ用サイト


スマフォ用サイトのQRコード

このページを共有


今月のカレンダー



1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

カテゴリ一覧

ただの日記(965)
原付生活(3)
子育て日記(11)
PC関連(11)
もろもろ日記(908)

競馬+POG(1592)
当たらない予想と反省会(707)
POGネタ(58)
競馬について考える(19)
競馬もろもろ(219)
ダービーウィーク!(14)
2011年競馬場訪問記(27)
2012年競馬場訪問記(53)
2013年競馬場訪問記(61)
2014年競馬場訪問記(40)
2015年競馬場訪問記(44)
2016年競馬場訪問記(25)
2017年競馬場訪問記(36)
2018年競馬場訪問記(39)
2019年競馬場訪問記(34)
2020年競馬場訪問記(24)
2021年競馬場訪問記(37)
2022年競馬場訪問記(51)
2023年競馬場訪問記(70)
2024年競馬場訪問記(19)
地方競馬馬主(5)
ひとくち馬主(3)

ホームページ製作(366)
PHPの備忘録(13)
CSSの備忘録(5)
JavaScriptの備忘録(2)
ホームページもろもろ(287)
Flashの備忘録(12)
管理人の備忘録(21)
スマフォ用サイト作成(19)

自宅サーバ(360)
FreeBSD(17)
Apache(4)
PHP(5)
MySQL(17)
サーバもろもろ(145)
障害連絡(131)
リニューアルプロジェクト 2011-2012(41)

お仕事(48)
お仕事(48)

旅の記録・水曜どうでしょう関連(43)
水曜どうでしょう(11)
2009年四国お遍路(6)
2009年アンコールワット(5)
2010年ベトナム(3)
2010年いっそ九州(5)
2010年北海道179市町村(5)
2011年春の一人旅(2)
2011年四国お遍路(6)


先月までのネタ

2024年
2024年3月(7)
2024年2月(8)
2024年1月(13)

2023年
2023年12月(11)
2023年11月(8)
2023年10月(10)
2023年9月(7)
2023年8月(9)
2023年7月(10)
2023年6月(6)
2023年5月(10)
2023年4月(5)
2023年3月(4)
2023年2月(6)
2023年1月(6)

2022年
2022年12月(9)
2022年11月(8)
2022年10月(5)
2022年9月(5)
2022年8月(2)
2022年7月(6)
2022年6月(9)
2022年5月(3)
2022年4月(3)
2022年3月(4)
2022年2月(7)
2022年1月(5)

2021年
2021年12月(8)
2021年11月(9)
2021年10月(4)
2021年9月(3)
2021年8月(2)
2021年7月(6)
2021年6月(12)
2021年5月(2)
2021年4月(8)
2021年3月(2)
2021年2月(7)
2021年1月(2)

2020年
2020年12月(8)
2020年11月(3)
2020年10月(4)
2020年9月(1)
2020年8月(2)
2020年7月(7)
2020年6月(6)
2020年5月(9)
2020年4月(11)
2020年3月(8)
2020年2月(5)
2020年1月(9)

2019年
2019年12月(4)
2019年11月(5)
2019年10月(7)
2019年9月(2)
2019年8月(2)
2019年7月(8)
2019年6月(2)
2019年5月(3)
2019年4月(2)
2019年3月(4)
2019年2月(3)
2019年1月(1)

2018年
2018年12月(8)
2018年11月(5)
2018年10月(10)
2018年9月(6)
2018年8月(1)
2018年7月(7)
2018年6月(5)
2018年5月(7)
2018年4月(19)
2018年3月(3)
2018年2月(3)
2018年1月(11)

2017年
2017年12月(14)
2017年11月(11)
2017年10月(18)
2017年9月(18)
2017年8月(21)
2017年7月(29)
2017年6月(26)
2017年5月(23)
2017年4月(18)
2017年3月(11)
2017年2月(11)
2017年1月(16)

2016年
2016年12月(25)
2016年11月(24)
2016年10月(30)
2016年9月(15)
2016年8月(16)
2016年7月(15)
2016年6月(18)
2016年5月(30)
2016年4月(28)
2016年3月(29)
2016年2月(26)
2016年1月(32)

2015年
2015年12月(30)
2015年11月(29)
2015年10月(30)
2015年9月(27)
2015年8月(28)
2015年7月(28)
2015年6月(28)
2015年5月(29)
2015年4月(30)
2015年3月(28)
2015年2月(26)
2015年1月(29)

2014年
2014年12月(31)
2014年11月(28)
2014年10月(31)
2014年9月(29)
2014年8月(29)
2014年7月(31)
2014年6月(31)
2014年5月(30)
2014年4月(30)
2014年3月(28)
2014年2月(27)
2014年1月(31)

2013年
2013年12月(29)
2013年11月(27)
2013年10月(29)
2013年9月(27)
2013年8月(28)
2013年7月(28)
2013年6月(29)
2013年5月(29)
2013年4月(30)
2013年3月(26)
2013年2月(24)
2013年1月(29)

2012年
2012年12月(28)
2012年11月(27)
2012年10月(28)
2012年9月(30)
2012年8月(31)
2012年7月(33)
2012年6月(32)
2012年5月(33)
2012年4月(35)
2012年3月(30)
2012年2月(27)
2012年1月(31)

2011年
2011年12月(25)
2011年11月(25)
2011年10月(28)
2011年9月(28)
2011年8月(28)
2011年7月(28)
2011年6月(27)
2011年5月(26)
2011年4月(16)
2011年3月(9)
2011年2月(11)
2011年1月(9)

2010年
2010年12月(12)
2010年11月(11)
2010年10月(8)
2010年9月(13)
2010年8月(10)
2010年7月(20)
2010年6月(6)
2010年5月(9)
2010年4月(2)
2010年3月(3)
2010年2月(5)
2010年1月(8)

2009年
2009年12月(9)
2009年11月(2)
2009年10月(4)
2009年9月(3)
2009年8月(1)
2009年7月(9)
2009年6月(3)
2009年5月(14)
2009年4月(10)
2009年3月(11)
2009年2月(9)
2009年1月(10)

2008年
2008年12月(1)
2008年11月(1)
2008年10月(1)
2008年9月(5)
2008年8月(1)
2008年7月(1)
2008年6月(2)
2008年5月(1)
2008年4月(1)
2008年3月(2)
2008年2月(7)
2008年1月(7)

2007年
2007年12月(11)
2007年11月(7)
2007年10月(8)
2007年9月(12)
2007年8月(11)
2007年7月(5)
2007年6月(16)
2007年5月(8)
2007年4月(2)
2007年3月(14)
2007年2月(2)
2007年1月(8)

2006年
2006年12月(4)
2006年11月(6)
2006年10月(7)
2006年9月(10)
2006年8月(9)
2006年7月(20)
2006年6月(13)
2006年5月(3)

2005年
2005年9月(13)
2005年8月(13)
2005年7月(18)
2005年6月(24)
2005年5月(26)
2005年4月(26)
2005年3月(27)
2005年2月(22)
2005年1月(26)

2004年
2004年12月(29)
2004年11月(29)
2004年10月(26)
2004年9月(23)
2004年8月(12)


最近よく読まれてるネタ



Excel VBAで「SPAT4自動投票システム」を作ってみました。
(2020年7月19日のネタ:69回)

G1予想大会の結果を掲載しました(…即席ですが)
(2011年4月25日のネタ:41回)

昨日は毎日杯 の観戦に、阪神競馬場 へ行ってきました。
(2024年3月24日のネタ:33回)

追悼 高知競馬 所属 塚本雄大 騎手
(2024年3月25日のネタ:27回)

…来週から、週末予想のタイトルが変わります(…今年初?の祝勝会。)
(2012年5月13日のネタ:27回)

管理人の当たらないG1予想!皐月賞編!
(2012年4月14日のネタ:26回)

明日はダートの祭典・JBC!管理人の当たらない予想!(連続現地観戦は4年でストップ)
(2015年11月2日のネタ:25回)

「岬めぐり」…はぁ?(管理人の本職とプライベートの話。)
(2014年5月16日のネタ:25回)

「The Sunday Breeze」から、1年ぶりに重大なお知らせです。
(2012年10月12日のネタ:24回)

本日は夜勤明けで園田競馬場 へ行ってきました。
(2024年3月22日のネタ:23回)



最近のコメント



今日は改修工事真っ只中の #京都競馬場 (パークウインズ京都競馬場)へ行ってきました。(チョネ)

本日は笠松競馬場へ行ってきました。(あいべ)

管理人の今年の目標が一つ増えました…。(あああ)

まあそんなに書くことはありませんが…。(momo)

【管理人からご挨拶】 『The Sunday Breeze』は5月25日に開設19周年を迎えます。(アオヤギ)

4月からスタートする「Sunday Breeze POG!」の一部ルール追加について。(アオヤギ)

昨日「Sunday Breeze賞」の観戦に帯広競馬場へ行ってきました。(白イチゴ)

本日5月25日、「The Sunday Breeze」は18回目の誕生日を迎えました。(アオヤギ)

【「G1予想大会」プレリリース終了】皆様のご協力、本当にありがとうございました。(アオヤギ)

【再度お知らせとお願い】今週からの「G1予想大会」、新機能プレリリースを公開中です。(白イチゴ)



ネタの検索



管理人の競馬観戦記録


(2024年)

JRA中山競馬場
1月6日 (中山金杯)
1月14日 (京成杯)
3月2日 (オーシャンS)

JRA阪神競馬場
3月23日 (毎日杯)

JRA小倉競馬場
1月27日

水沢競馬場
3月10日 (奥州弥生賞)

船橋競馬場
1月17日 (ブルーバードC)
1月19日
2月9日
3月5日

川崎競馬場
1月5日
3月11日

笠松競馬場
1月25日

名古屋競馬場
1月19日

園田競馬場
93月22日

姫路競馬場
1月26日

高知競馬場
2月25日 (レジーナディンヴェルノ賞)

佐賀競馬場
1月28日

2012年以降の競馬観戦インデックス


管理人の競馬家計簿


(最近14日分)

2024年3月16日中山
11勝  回収率:330.0%

2024年3月16日中京
11勝  回収率:150.0%

2024年3月16日阪神
91勝  回収率:28.8%

2024年3月17日中山
11勝  回収率:125.0%

2024年3月17日阪神
10勝  回収率:0.0%

2024年3月17日帯広
11勝  回収率:153.3%

2024年3月20日大井
10勝  回収率:80.0%

2024年3月22日園田
72勝  回収率:78.9%

2024年3月23日阪神
62勝  回収率:45.5%

2024年3月24日中山
60勝  回収率:0.0%

2024年3月24日中京
93勝  回収率:119.2%

2024年3月24日阪神
41勝  回収率:40.7%

2024年3月26日高知
10勝  回収率:0.0%

2024年3月27日浦和
10勝  回収率:0.0%

2024年3月28日名古屋
10勝  回収率:0.0%

2024年3月28日園田
10勝  回収率:19.0%

2024年合計
36277
勝率:21.3%  回収率:65.9%
(万馬券:5本的中)

2023年合計
1772537
勝率:30.3% 回収率:71.2%
(万馬券:11本的中)

2022年合計
2097563
勝率:26.8% 回収率:66.4%
(万馬券:29本的中)

2021年合計
2147527
勝率:24.5% 回収率:67.8%
(万馬券:24本的中)

2020年合計
3046684
勝率:22.5% 回収率:65.2%
(万馬券:39本的中)

2019年合計
1438346
勝率:24.1% 回収率:68.2%
(万馬券:39本的中)

2018年合計
1488367
勝率:24.7% 回収率:75.1%
(万馬券:39本的中)


管理人のつぶやき


(皆様のフォローをお願いします。)

@sunday_breeze からのツイート
「ホームページ製作」の「PHPの備忘録」ネタは、全部で13件あります。

Webでタブシート

っぽいことをやってみます。
まだベータ版。

<html>
<head>
<script language="javascript">
<!--
function taba() {
document.getElementById('testa').style.display = "block";
document.getElementById('taba').style.backgroundColor = "#999";
document.getElementById('testb').style.display = "none";
document.getElementById('tabb').style.backgroundColor = "#fff";
}
function tabb() {
document.getElementById('testb').style.display = "block";
document.getElementById('tabb').style.backgroundColor = "#999";
document.getElementById('testa').style.display = "none";
document.getElementById('taba').style.backgroundColor = "#fff";
// Mac IEはこうしないと動かない?
// document.getElementById('taba').style.setProperty("background-color","#fff");
}


//-->
</script>
</head>
<body>
<span id="taba" style="border:solid 1px #000; background-color:#999" onclick="javascript:taba()">test_a</span>
<span id="tabb" style="border:solid 1px #000; background-color:#fff" onclick="javascript:tabb()">test_b</span>
<div id="testa" style="border:solid 1px #000; display:block">
test_a<br />
a<br />
a<br />
a<br />
a<br />
a<br />
</div>
<div id="testb" style="border:solid 1px #000; display:none">
test_b<br />
b<br />
b<br />
b<br />
b<br />
b<br />
b<br />
b<br />
b<br />
</div>
</body>
</html>

タグ<>が全角になってますのでご注意。

一応、動くには動く。
問題点

1:
音声読み上げソフトでページをよんだときに
先にタブ名が全部読まれちゃう。

2:
javascriptの中身はもうちょっと融通利くように
直したほうがよいです。
ID固定で書いているので。
タブを増やすときとか面倒なんで。

3:
MacIEだけ一部別ロジック。

改良版はまた後日。

[コメント読む(0)]  人気ブログランキングへ 

「Favorito」のメール送信機能

やっつけ仕事っぽく作ってみました。
あんまり出来はよくないかと(笑)
とりあえず使ってみてください。

今回は全部シェルです。
CとかPHPとかは使ってません。

ページのほうは、相変わらずがバグが潜んでいます。
Cookieがちっとも有効になってない。
サーバでセッションファイルが消えてるんじゃないか?

メールは今日初回稼動です。
まずは自分とこにメールが届くかどうか。

[コメント読む(0)]  人気ブログランキングへ 

ホームページメンテナンス画面にAjaxを導入。

簡単に。

本家The Sunday Breezeのトップ画面、最新情報などは
専用のメンテナンスページから更新しています。
その専用メンテナンス画面にAjaxを使ってみた。

最新情報の中に、馬名もしくはレース名を入れるときに、
馬名だったら、その馬の詳細情報へ
レース名だったら、そのレースの出走馬情報へ
とリンクをはることが目的。
リンクアドレスに、馬なら馬ID、レースならレースIDを使用しているので、
馬名を入れたら馬IDを、レース名を入れたらレースIDをサーバから取得する、というもの。

まず、


<textarea name="topic"></textarea>
<input type="button" value="馬名" onclick="javascript:h_name=prompt('馬名',''); getIndex_h();">


とすると、テキストエリアの下に「馬名」というボタンができます。
ボタンを押すと、ちっちゃいボックスが出てきて、
馬名の入力を促されます。
馬名を入れて、「OK」ボタンを押すと、getIndex_h()というJavaScriptの関数に飛ぶわけですね。


function getIndex_h() {
if ( window.ActiveXObject ) { // for IE
xmlhttp = new ActiveXObject ("Microsoft.XMLHTTP");
} else if ( window.XMLHttpRequest ) { // for Firefox, Opera
xmlhttp = new XMLHttpRequest();
}
if (xmlhttp) {
xmlhttp.onreadystatechange = check_h;
xmlhttp.open('GET', '馬ID取得.php?馬名=' + h_name, true);
xmlhttp.send(null);
}
}
function check_h() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.topics.topic.value+='<a href="リンク先' + xmlhttp.responseText + ')">' + h_name + '</a>';
}
}


getIndex_hの中で、馬IDを取得するPHPを呼んでいます。馬名を引数として。
戻り値(xmlhttp.responseText)には馬IDが入るようになってます。

あとは、テキストエリアの最後尾にリンクテキストを追記する、という感じ。

レース名についても同様の手法で簡単にできます。

どちらもID取得.PHPに日本語で引数を渡していますが、
文字コードには注意。うまく動かないことがあります。

Ajaxはそれほど大変なものではないです。
多少のWebの知識があれば、簡単にできます。


[コメント読む(0)]  人気ブログランキングへ 

AjaxならぬAjapを使ってみる。

そもそもAjax(エイジャックス)とは
「Webブラウザに実装されているJavaScriptのHTTP通信機能を使って、
Webページのリロードを伴わずにサーバとXML形式のデータの
やり取りを行なって処理を進めていく対話型Webアプリケーションの実装形態。」
(下記リンクより)
Asynchronous JavaScript + XMLの略だそうです。

これね、はじめてみたときに
すごい画期的な技術だなと思って。
ページ遷移しないのに、内容変えられるんですよ。

んで。

使ってみたいという気持ちはあるものの、
XMLの知識は相変わらずないので、さてどうしよう。

今回導入しようとしているのは、
POGの歴代馬のランキング。
データはもちろんDBで持ってます。
ページリクエストがきたらXMLを生成するか。。。

そこでひらめいた。
「Flashと同じじゃない?」
と。

PHPでテキストをベタではくようにしておき、
FlashのActionScript内からそのPHPを呼び出す。
そうすると、そのPHPはあたかもテキストファイルのように
ActionScript内では扱えるのです。

ActionScriptをJavaScriptに置き換えてみます。

PHPでテキストをベタではくようにしておき、
JavaScript内からそのPHPを呼び出す。
そうすると、そのPHPはあたかもテキストファイルのように
JavaScript内では扱えるのです。

ってなわけで、今回ご紹介するのを
勝手に「Ajap(エイジャップ)」と名づけさせていただきました。
XMLがPHPになった、と。

さて、詳細。
まずはJavaScript部分も含め、呼び出すほう。
----------
<html><head><script><!--
cnt = 0;

function hoge() {
 //ブラウザを判定して、どちらかを使います。
 xmlhttp = new XMLHttpRequest(); // for not IE
 xmlhttp = new ActiveXObject ("Microsoft.XMLHTTP"); // for IE

 if (xmlhttp) {
  xmlhttp.onreadystatechange = check;
  xmlhttp.open('GET', 'hoge.php?cnt=' + cnt, true);
  xmlhttp.send(null);
 }
}
function check() {
 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
  document.getElementById("disp").innerHTML = xmlhttp.responseText;
 }
}
//--></script></head>
<body><a href="javascript:cnt++;hoge();">count+1</a>
<div id="disp"></div></body></html>

呼び出されるほう(上のソースからだとhoge.php)
----------
<?
$cnt=$HTTP_GET_VARS["cnt"];
$cnt++;
echo $cnt;
?>

とまあこれだけでいいでしょう。

ブラウザでアクセスすると、「count+1」というリンクが現れます。
リンクを押すと、その下に数字が出て、押すたびに増えていきます。

たいしたサンプルじゃないな。
でもまあ、原理はわかっていただけると思うので。
あとはPHPでDB呼び出して、データ拾って、
タグまで書いちゃうと相当楽。

まだ未完成なので、作ったアドレスをお教えすることはできないんですが、
性能的な問題がクリアできるか。
都度サーバへアクセスするわけで、ページ遷移しているのと同じですから。

クリアできればじゃんじゃん使っていこうと目論んでいるところです。
Ajaxとは 【Asynchronous JavaScript + XML】 ─ 意味・解説 : IT用語辞典
[コメント読む(0)]  人気ブログランキングへ 

掲示板を新しくしました(PHPでXMLを使う)

ってなわけで。
メインページの掲示板を新しくしました。
見た目もさることながら、
今回作りも大幅に変えてみたんです。

実は、今までの掲示板。
データはCSV形式で持ってたんですよ。
カンマ区切りってやつですね。
で、致命的な不具合に気づきまして。

「本文中にカンマがあるとちゃんと表示できない」

本文のカンマと区切り文字のカンマの区別が
つけられないわけですね。
なので、本文のカンマ以降の続きの本文は
次のデータ項目と認識されてしまうわけです。

CSV却下。

そんなわけで。新しい掲示板。
データをどう持とうかとあれこれ考えました。
データベースにするか。ファイルにするか。

データベースの場合の案1
馬のデータはMySQLというデータベースに入っています。
なので、掲示板のデータもあわせてMySQLへ。

データベースの場合の案2
PHPバージョン5以降でデフォルトでついてくる
SQLiteという簡易データベースを使用する
まあ掲示板のデータはWebから以外触ることないし、
PHPからすんなり動くならこれもありかと。

データベースの場合の案3
新し物好きなので、最近うわさの「Firebird」を使う。
今後、MySQLのデータも順次Firebirdへ移行。

でもね。
案1:馬のデータとあわせる必要あるの?あんまり負荷もかけたくないし。
案2:文字コードがISO8859-1しか使えない?
案3:なんかそんな元気ないなぁ。

そもそも
たかだか掲示板でデータベース使う必要あるの?
そんな書き込み多いわけじゃないんだし。

データベース案ALL却下。
ファイルか。

ってことで。PHPのマニュアルを読んでいて、こんな記述。
「PHPにはPOSIX拡張正規表現もしくはPerl正規表現から
 XML文書の解析に至るまで 非常に便利なテキスト処理の機能があります。
 XML文書の解析や操作のために SAXとDOMをサポートしています。
 XML文書の変換にはXSLT拡張モジュールを使用することが出来ます。」


XMLか。

PHPマニュアルのXMLパーサ関数の項を見ていたら、
かなり使えそうでしたので、ちょろっと作ってみました。
XMLファイルをPHPの配列へ変換します。

XMLの構造は
<bbsdata>
<ma>おやID(新しいスレッドで増える)</ma>
<mi>こID(返信のときに増える)</mi>
<w_date>書き込み日付</w_date>
<w_mail>メールアドレス</w_mail>
<w_web>Webアドレス</w_web>
<w_title>タイトル</w_title>
<w_name>名前</w_name>
<w_detail>本文</w_detail>
</bbsdata>

な感じで。


//データをべたで変数に読み出して、
$data = implode("",file("XMLファイル名"));
//XMLパーサを作成します。
$p = xml_parser_create();
//大文字への変換はOFF
//(デフォルトだとXMLタグが全部大文字に変換されちゃいます)
xml_parser_set_option($p,XML_OPTION_CASE_FOLDING,0);
//これは何かわかんないけど、ないと動かない
xml_parser_set_option($p,XML_OPTION_SKIP_WHITE,1);
//で、読み出したXMLデータを配列へ
xml_parse_into_struct($p,$data,$vals,$index);
//XMLパーサは以上
xml_parser_free($p);


この時点で、
$vals[$index["ma"][n]]["value"]=(n+1)件目のデータのおやID
$vals[$index["mi"][n]]["value"]=(n+1)件目のデータのこID
ってな感じで。

あとはループとか多用しながら
使い勝手のいいように配列を整理していけば。
$bbsdata[おやID][こID]["w_date"]=日付
$bbsdata[おやID][こID]["w_title"]=タイトル
$bbsdata[おやID][こID]["w_detail"]=本文
みたいにね。

こうなれば、ページの構成は単純で

おやIDの0から最大までループ
|
| こID=0の(新規で書き込まれた)書き込み表示
|
| こIDの1から最大までループ
| (最大が0(返信がない)なら通らない)
| |
| | こID>0の(返信された)書き込みを表示
| |
| |
|

書き込むときは単純に
同じ構造でXMLファイルのケツに追記すればいいだけ。

XMLにしとけば、PHP以外でも何かと使えそうだし。
万が一jspとかservletとか使うようになってもすんなり移行できそうだしね。

なかなか使い勝手がいいので、
今後いろんなページで多用していこうかと思ってます。
リンク集とか。

そうだ。書き忘れ。
PHPのXMLパーサ関数は使える文字コードが限られてます。
(UTF-8とISO-8859-1とUS-ASCII)
けど、うまいことmb_convert_encoding(マルチバイトエンコーディング)関数とか使えば
SHIFT-JISでもEUCでもいけます。
うちは基本的にEUCですが、掲示板データはUTF-8で持ってます。
読み込むときに
$after=mb_convert_encoding($before,"EUC-JP","UTF-8");
書き込むときに
$after=mb_convert_encoding($before,"UTF-8","EUC-JP");
とすればいいだけなので、あまり問題ではないでしょう。
PHPマニュアル(日本語版)
[コメント読む(0)]  人気ブログランキングへ