PHPヴァージョンアップ備忘録

旧の掲示板は,「画像掲示板plus」というPHPで書かれたものを使ってました。このプログラム(スクリプト)は,「LEMON-S PHP」というHPに掲載されていたものです。あまり需要がないのか,更新が途絶えているようで,サポート掲示板も,2016年の作者の書き込みを最後に,更新されてないようです。2016年は,PHP7になった頃でしょうか,サポートにもPHP7で「画像掲示板plus」を動かすにはどうすればいいか,ちょっとだけ記述がありました。
この旧掲示板は,私にとってもいろいろな情報が残ってるので,表示だけは残したかったので,PHPの初心者の私が,ネットサーフィンをたよりに,V5⇒V7にアップデートしても動くように,無謀な挑戦をしたところです。
「LEMON-S PH」には,まだ,PHPのスクリプトが残ってますので,2015年に更新されたv2.36をDLしました。このファイルは,このままだと文字化けを起こしますので,

    SHIFT-JIS⇒⇒UTF-8

のように変換して,保存しました。また,サーバー上に残ってる,「imglog.log」というCSV形式のデータもUTF-8で保存しなおしました。
一方,最低限必要なPHPとアパッチをどうするか迷いましたが,それぞれにインストールすると細かい設定が面倒そうで,デバック環境を作るだけでも時間がかかりそうなので,諸兄のHPを見ながら,「XAMPP」という,PHPプログラム作成の環境を一括インストールで作成できるものを導入しました。

導入後早速その環境で,該当するプログラムを動作させ,あれこれ始めました。また,公開しているHPのようにまっしろかなと思いましたが,

    Warning: Use of undefined constant

という警告が20以上でてきました。

意味がわからなかったのですが,ネットくぐってみると,該当の行の該当の項目に「’ ‘」の記述がないことが原因であることがわかりました。そこで,

    修正前・・・・・・define(LOGFILE, ‘imglog.log’);
    修正後・・・・・・define(‘LOGFILE’, ‘imglog.log‘);

のように変更しました。defineの括弧の後半(赤字部分)が数字の場合,シングルクーテーションがあるところとないところがあり,その違いが分かりませんでしたが,下記のように統一しました。

    修正後・・・・・・define(‘MAX_KB’, 500)

これで,「Warning」はほとんどなくなりました。PHP5では,このシングルクオーテーションがなくても,きちんと動いてた様で,PHP7では,そのチェックが一層厳しくなったそうで,この結果になってるようです。

まだ消えないエラー表示を見てみると

    Fatal error: Uncaught Error: Call to undefined function eregi()

というのがあり,これも調べてみると,PHP5で使われていた備え付けの関数がPHP7では,廃止になったとのことで,代替えの関数として,

    preg_match

が使えるとのことなので,

    修正前・・・・・・eregi($value,$ref)
    修正後・・・・・・preg_match(‘/$value/i’,$ref)

のように変更。このFatal error:があるとプログラムはそこで,止まってしまうようで,もう一カ所修正箇所がありました。

修正前・・・ereg_replace(“(https?|ftp|news)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)”,”<a href=\”\\1\\2\” target=\”_blank\”>\\1\\2</a>”,$proto);
修正後・・・preg_replace(“/(https?|ftp|news)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)/“,”<a href=\”\\1\\2\” target=\”_blank\”>\\1\\2</a>”,$proto);
再修正・・・preg_replace(“/(https?|ftp|news)(:\/\/[[:alnum:]\+\$\;\?\.%,!#~*\/:@&=_-]+)/”,”<a href=\”\\1\\2\” target=\”_blank\”>\\1\\2</a>”,$proto);

 

修正後,懐かしい画面の片割れがでてきましたので,ここでも少し「やった。」になりました。懐かしい画面と一緒にでてきたのは,書き込みの表題だけでした。

修正したものを見ると,再修正が必要で,最終的に,青で示したエスケープシーケンスを挿入すると,コメントまで表示できました。

PHP側で,正規表現のはじめ「/」と,終わのりを意味する「/」の他にあるスラッシュを区別する必要があり,区切りでないスラッシュは,「¥/」とする必要がありました。

表題・コメントが表示できたのはいいのですが,それと同時に大量のNOTICEがでてきました。

   Notice: Undefined variable: r_com

調べてみると,定義してない(NULL)状態の変数に操作をしているために起きるようで,それぞれの変数の直前に

    r_com=””

という記述で,変数は空(何も入ってないですよということらしい)ということを代入して,このNotice:を消しました。

その後,どうしても画像を表示できず,画像を操作していると思われるところを一つ一つ確認していきました。結局,WINDOWSの環境でデバックをしていましたので,ドライブの指定が間違っていて,小文字を大文字に変えたら,あっけなく表示できました。思わず,そばにいた妻に「やっった。」と叫んで,そのわけを説明しました。という訳で長い道のりでしたが表示だけできました。

でも,どうしても消せないNotice:があるので,あれこれこも調べましたが,プログラムで表示させなくできるということで,PHPのファイルの冒頭に,

error_reporting(E_ALL & ~E_NOTICE);

を記入することで,消すことにしました。しかし,消してみると新たに,

Deprecated: Function get_magic_quotes_gpc()

というエラー出てきました。これも調べてみると,PHP7では,実装されてなくて,常にFALSEを返すということで,該当の部分には,

 if(get_magic_quotes_gpc()) $gazoubbs = stripslashes($gazoubbs);

のような記述で,get_magic_quotes_gpc()が有効なら$gazoubbs = stripslashes($gazoubbs)を実行するということでした。常にFALSEを返すことから,$gazoubbs = stripslashes($gazoubbs)は実行されないので,ここは,削除することにしました。

これで,やっと,エラーも表示されなくなり,閲覧だけできるようになりました。

{追記}PHPのプログラムを追っていくなかでいくつか分からない表現にであいました。
      .$value.
    のような表現で,これも調べてみると,文字の結合を表す表現でした。分かったのもありますが,
        $dat.=’     のような表現が所々に,あり,このシングルクオ-テンションの意味が未だに不明です。単に$datに    「`」を結合するものなんでしょうか。

モグラ君久しぶりにつかまりました。

今年は,比較的モグラの被害が少なかったのですが,一時,ボコボコにされましたが,ある時期から,めっきり被害がすっくなくなりました。

草取りのついでに,庭のフェンス沿いにしかけてあった,モグラ取りをみてみました。写真のものを写真のように土中にセットしてあります。

矢印の蓋をあけて,中をみてみました。

写真では,なかはみえないのですが,土が中にたまっていたので,中の土を何回かにわけて,てでつまみだしました。何回か目に土を握ると,明らかに土とは違う感触にちょっとびっくり。つかんでつまみ出してみると,なんと,モグラ君でした。

作業用にゴム手袋をしていたので,手は汚れませんでしたが,ちょっと,気持ち悪かったです。腐敗が始まったのか,ちょっと匂いましたが,まだほとんど原型をとどめていました。モグラ捕獲器で一番成績がよかったのは,筒状のもので,今までに3匹ほどつかまえました。

次に成績がよかったのは,バネで,モグラを挟む罠で,一匹捕まえました。

今日のモグラは,5匹めです。今日のモグラ君も,埋葬いたしました。

どのモグラ捕獲器でも一緒だと思うのですが,いかにモグラの通り道を特定するかに,捕獲の可否がかかってるのだと思います。うまく通り道にセットできれば,成功の確率がたかくなります。

経年劣化ーー電動ポット

何でもそうだけど,長年使ってると,経年劣化によって,いろんなところがいたんでくる。経年劣化で故障やら不具合が出てくる時期は,かさなるようで,一つだめになると他の物もだめになるような気がする。

実家で使ってる電動ポット(5L)もご多分に漏れず,不具合がでてきた。何年か前に,蓋のゴムパッキンは取り替えたが,蓋の内側の金属部分を支えているプラステックのネジ受けの部分が折れてしまって,金属部分がとれてしまった。金属のカバー?は4本のビスで止まってるが,ものの見事にそのネジを受けている部分の根本が折れてしまった。蓋を開けると,その部分がお湯の注ぎ口を塞ぐように残ってしまうことになった。(写真は撮り忘れ)

いよいよ買い換えるようかなと思い,蓋の内側の部品だけでも販売してないかしらべたが,上蓋全部は部品ででているようなので,型番で調べて,似ている型番のものをポチってみました。

下記の品番のもので,

【純正品・新品】タイガー魔法瓶VE浄水電気まほうびん用のふた【TIGER PVG1029】

ダメ元での注文でしたが,

ぴったりでした。買い換えよりは安くすみましたが,野口英世約4枚どうでしょうか割高なのでしょうかね。

—eye-fiからflashairへ—

 いつも旬が過ぎた頃に,興味をもつ傾向がありますね。旬のころにできれば,情報も豊富にあり苦労しなくてすむかと思うのですが・・・・・。
2010年ですから,かなり前にeye-fiのSDカードを購入し,便利に使ってました。当時,7000円ぐらいしたかと思います。(eye-fi-proはもっと高かったかな。)一番便利だったのは,とった写真がすぐに,PCを介さずにリンクステーションに自動で転送できることでした。

 

重宝してましたが,何年か前に,使えなくなるとの連絡があり,実際使えなくなってしまいました。eye-fiのカードを使うには,ユーザーIDでログインする必要がありましたので,きっと,メーカーのサーバーを通して,転送をしていたのかと思います。そのサー-バーの運用をやめたのですね,きっと。
 そこで,使えなくなる前に,乗り換えるべく,2017年に約5000円でflashairを購入し,運用をはじめました。当時は,flashairのLUAと呼ばれるスクリプトのことは知りませんでしたので,いくつかのソフトを介して,画像のやりとりをwifi経由で行ってましたが,かなり不便になりました。

ひょんなことから,ネットサーフィンで,flashaie ftp upload という記事を見つけ,これをやれば以前のeye-fiと同じように使えると思います,某オクで中古のflashaieを訳7000円で落札して,設定をし始めました。東芝から発売されていたこのflashairのSDカードは既に製造中止で,*mazonでは,4万円近くで販売されています。何じゃこれです。これだけ高くなるのは品物がないのと需要があるためなんでしょうね。  という訳でここのHPを参考に設定を行いました。いくつかドツボにはまりましたが,やり始めて,3日程度で物になりました。ドツボにはまったのは,ftpアップロードするホルダーの記載方法です。リンクステーションは,ミラーリングをしていますので,ドライブの指定は,下記赤のようにしないとだめでした。

     array1/share/****

あと,はまったのは,隠れCONFIGファイルの設定で,スペル間違いでした。設定したIPアドレスでflashairにアクセスすると下記画像のような画像になります。あれこれいじっていて,うまくいくときといかないときがあり,やっと,赤矢印をクリックするとうまくいくことにきづきました。

それもそのはずですね,赤矢印は,写真をftp転送するLUAスクリプト(ftpupload.lua)の本体でした。その変がよくわからなかったのですが,クリックすることで,スクリプトを実行できるんですね。だとするとどうして,写真をとった時に転送できないのか,ずっと疑問でした。そこで,もしやと思い,隠れファイルのCONFIGをみてみました。隠れファイルのCONFIGは,SDカードをPCのスロットに挿入すると,下記のような画面になりますので,隠れフォルダー(通常では見えません。私は,拡張子,隠れフォルダー等見える設定にしてあります。)のSD_WLANのフォルダーにあります。

赤矢印をクリックすると,

やっとCONFIGです。この中身は,下記のようにしてます。

[Vendor]

CIPATH=/DCIM/100__TSB/FA000001.JPG APPMODE=5
VERSION=FA9CAW3AW3.00.01

CID=02544d535733324740e0bc3e7901****
PRODUCT=FlashAir VENDOR=TOSHIBA
APPSSID=aterm-e4b126-g
APPNETWORKKEY=*************
LOCK=1
WEBDAV=1
TIMEZONE=36
MASTERCODE=12345678
UPLOAD=1
STA_RETRY_CT=10
LUA_SD_EVANT=/ftpupload.lua

DHCP_Enabled=NO
IP_Address=192.168.***.***
Subnet_Mask=255.255.255.0
Default_Gateway=192.168.***.****
Preferred_DNS_Server=221.113.139.138
Alternate_DNS_Server=61.207.11.154

LUA_SD_EVANT赤字の項目がありますが,多分これが,イベント(電源投入や撮影)によってスクリプトを実行する設定のところのような気がしました。よく見るとなんと,スペルが間違っていました。

LUA_SD_EVANT→→→LUA_SD_EVENT

のように変更したところ,めでたく,自動で転送できるようになりました。なおCONFIGのDHCP以下のの記述は,flashairのSDカードを固定IPで使うための設定です。

もう一つは,wifiに接続するためのSSIDとパスワード関連の間違いでした。何回PINGを打っても返答が帰らないので,一時,ハードを壊したかなと思いました。念のため,ルーターの設定をコピペしなおしたら,すんなりPINGが帰り,自動転送もうまくいきました。既に一枚持っていたflashairのSDカードですが使うカメラが2台あるので,それぞれのカメラということで,落札した次第です。

某オクで落札したカードは,ほぼ新品ということでしたが,専用以外のソフトでフォーマットしたためか,購入時の隠しフォルダー隠しファイルまで削除されていて,ドライブ名も変更されていました。ちょっとあせりましたが,専用のソフトでフォーマットしたら,隠しホルダー等が書き込まれましたので一安心しました。現在,東芝からKIOXIAに移っているようですね。

         FlashAirTool

ここから専用のソフトをDLできますが,いつまで,DLできるかは不明ですね。

鬼柚子の実がなりました。

 2018年に2年ものの鬼柚子を購入し庭に植えました。いつになったら実がつくかなと家内と毎年のように話してました。あるとき,今まで気づかなかったのに,一つだけ実がなったと家内が言ってきました。
 草刈り等をしていたのに,今まで気づかなかったとのことで,びっくりしてました。
 対象物がないので,大きさがわかりませんが,通常の柚子を比べるとかなり大ききいです。小学生が使うドッチボールぐらいの大きさがあるかと思います。もう少ししたら,収穫?したいと思いますが,そのとき,対象物を一緒にとって掲載したいと思います。

昔から桃栗三年下記八年,柚子の大馬鹿十八年なんて言葉がありますが,今の柚子は接ぎ木をしているので,実もなるのも早いようです。我が家の柚子は,結局6年でなったことになります。

 本日,柚子を収穫いたしました。

大きいですね。何にしようかと話合いましたが,オレンジピールならぬ柚子ピールでも作ろうかと思います。

芝生の草取りをしています。

この2年間,芝生の手入れは,芝刈り程度で,なかなか手入れができずにいました。やっと,手入れができるようになり毎日のように草取りをしています。ブルーベリーの周りに,名前はわからないのですが,緑の小さな草がびっしり生えてしましました。

ほって置くとどんどん増えるので始末が悪いです。名前は,わかりませんが,後でグーグルレンズでしらべてみようと思います。この草は,地下茎でつながっていて,勢力を見る間に伸ばしていきます。手入れができなかった時は,芝刈りのついでに,刈払機で,根こそぎ刈り取っていましたが,茎が残っていて,少したつと又伸びてしまいます。
この草は,ブルーベリーの周りにびっしりはえています。赤で囲ったところは,すでに根っこからとったところです。

まだ,青で囲った部分がのこってますので,地道にやる予定です。芝草取り用のフォークで,芝を掘り返すようにして,根っこにアクセスしてなるべく根っこや地下茎をとるようにしてます。

この草は,地下茎を伸ばして,根っこをはやしたところから新芽がでてきます。

新芽が伸びたところが成長して,写真のような,新芽が何本かあつまったような株状のもになるようです。

ダイダイ矢印のように他のものと地下茎でつながっています。 この草を取るときは,なるべく根っこと茎をとるようにしてます。そうすれば,増えるのを少しでも減らせるかなと思ってます。

本日,グーグルレンズでこの草の名前を確認してみましたが,特定することができませんでした。

どなたかご存じの方いるでしょうかね。

12月1日,やっと残りが写真の部分だけになりました。

でも,終わった後から,新芽がでてきます。取り残してる地下茎から出たのだと思います。

草取りができるようになり,毎日のようにやってますが,全文取り終わらないうちに,既に取ったところにまた,新しい草でのびてます。

一通り終わったても,すでにとったところを,また,取るようです。でも,一度終わったところは,カタバミが少なくなってるので,比較的楽かなと思います。

12月3日 残っていた一角の草もやっと取り終わりました。

もう少しで,一通り草取りが終わるので,最初に戻って,後から生えてきた草をまた取るようです。

arduino+Android端末+bluetooth で DRO (TouchDRO)

 やっと長い冬眠から目覚めました(笑)
 ちょっと面倒になって,ブログの更新をしていませんでした。
 その間も,いろいろあさってましたが,ある海外のサイトで,
 arduinoを使って,Android端末をDROにする記事がありました。
 いろいろくぐって,オープンソースでプロジェクトを作成してる

 HPにたどりつきました。

 まねしてみようと思い,あれこれもがきました。ブレッドボードで,

 

 写真のような回路で実験しましたが,次の動画のような
 結果がでましたので,また,備忘録がてらまとめておこうと
 思います。

 回路図は,前掲のHPの冒頭にありますので,簡単に作成できる
 はずです。

 

  (HPよりお借りしました。)

 部品は下記の記述がありました。

   R1-R3   Resistor, 10K 3
    R4      Resistor, 330 Ohm 1
    R5      Resistor, 220 Ohm 1
    C1-C3   Capacitor, ceramic, 0.1uF 3

 思うようにいかなかったのは,USBのコネクターもピンアサインで。
 あれこ調べました。

 

 写真と回路図は,VCCとGNDが逆なので,注意が必要でした。
 それと,

    「D+」・・・・・・・・「Z-3」(データ)
    「D-」・・・・・・・・・「Z-2」(クロック)

 ようになってますので,ここも要注意かなと思います。

 写真の「ID」は,無結線です。
 それと,BLUETOOTHのアダプターですが,当初 HM-18 という
 のを使いましたが,Android端末と接続が持続できないので,
 HC-5 という物に交換しました。aruduinoとの接続で,分圧等
 で,電圧落とす必要があるのかなと思いましたが,直結で
 大丈夫でした。

 

 USBのコネクターも,HC-5のBLUETOOTHも●ZONから購入
 しました。

 プログラムは,MSP430LaunchPad用とarduino用があるようで,
 記載されているHPも違うようです。

     MSP430用プログラム
     aruduino用スケッチ
  スケッチは,HPの下の方にあります。

  Android端末用のアプリは,
  Google Play

 から入手できます。
 私は,フライスのZ軸に使ってたDROが調子悪くなり,
 時々数値が飛ぶようになったので,新しい物に交換しましたので,
 調子の悪いものて実験しました。また,Android端末は,家の
 が前に使ってたArrows NX なる古い携帯をつかいました。

 AndroidのエミュレータをPCに入れてやってみましたが,
 BLUETOOTHの設定がうまくいかず,動きませんでした。
 実験で使ったスケールはiGagingの古いものですが,新しいものにも対応し
 ているようで,基盤そのものの販売もあるようです。
 基盤を購入して,つなげばそれでできますので,
 その方がてっとりばやいかもですね。でも高い。
 互換品等使えば,DROが安く設置できるかもですね。

「レオ」の扇風機

 2.3日前に,お風呂の換気扇が動かなくなりました。動かなく
 なる前は,しばらく,今までにしなかった音がするようになりま
 した。
 早速新品を注文しましたが,ダメ元で,モーターの部分まで,
 分解してみると,モーターの軸についているベアリングの一つ
 が固着して,動きが渋くなっていました。
 HCで同じ型番のものをもとめて,交換してみると,見事復活,
 でした。
 でも,新品が届いたので,新品に交換,修理したものは,予備
 として保存することにしました。
 これに気をよくして,動かなくなっていた「レオ」の扇風機を分解
 修理をすることに。

 

       この扇風機は,レオが小さい時に,部屋にクーラー
       を設置する前に,使ってたもので,あの大きな体を
       をこの小さな扇風機の前にして,暑さをしのいでた
       ものです。
       いろいろなものに悪戯をしたのですが,この扇風機
       には悪戯はしませんでした。
       大事にとってありましたが,あるときから動かなくな
       ていました。
 お風呂の換気扇と同じだろうとあたりをつけて,ベアリングを
 交換すれば大丈夫かなと思い分解しましたが,ベアリングで
 はなく,メタル軸受けでした。
 このメタルが芯ずれを起こして,動きが渋くなっているだけでした。
 掃除をして,芯をなおすと見事動くようになりました。

 

 なにも特別なことはしてないので7日すが,ファンを外すのに,

 

 写真矢印のバネ状のストッパを外すのに苦労しました。
 先のラジオペンチでもあれば,簡単だったと思いますが,
 
 外せるところを外して,マイナスドライバーではずしました。
 レオがなんとなく傍にきたようで,ちょっと,うれしいです。
 レオが永眠してから,もう3年ですね。

旋盤メンテ カミソリの制作 (4)

 横送り台の部分改造---浮き上がり防止---
 カミソリを作ってますが,材料の切り出しのため,バイスをセット
 しました。一度セットすると,平行だしが面倒なので,バイスで
 作業できることをすすめました。
 当初の計画と違って,横送りだいの上?の方のアリ溝を
 15mmほど切斯いて,そこにカミソリを抱き込むようなな部品を
 セットする改造を行いました。

 

 今回はフライスを使って加工しましたが,0.1mm程度の精度で,
 作ることができました。
 ==========================
 これ以上精度を上げるのは,大変だと思いました。
 小さなエンジンを作られている方のHP見た記憶ありますが,
 1/100mmがどうのとか書かれていたような気がします。
 私には,今のところ0.1mmの精度がいっぱいでしょうね。
 ==========================
 受けのところと接触する面も,手でさわっても段差なくセットでき
 ました。ただ,セットの具合で,0.1mm程度の隙間ができたようです。

 

 2種類のカミソリを作ることになりますが,片面切削した段階で
 切り離せばこの部品の部分の台形のカミソリはできます。
 それほど手間かからないかなと思います。
 カミソリの調整には,六角ボルトを使いますが,場合によっては,
 この部分,ノブ付きのボルトに変更してもいいかなと思います

 

 果たして,浮き上がり防止の効果はいかほどでしょう?
 縦送り台?の方にも同じ加工をしたいのですが,ここには,
 DROがつくので,思案中です。
 今回は,バンドソーのアップrグレーで以前いらなくなったオリジナル
 のテーブルの角をきりだして,ちょうどL字型になるので,
 それを使いました。

重なってます。 (2)

 とどかなかったアマゾンからの2段階認証SMSが届くようにな
 りました。システムの不具合だったのでしょうかね。
 重なると書きましたが,家の生命保険の更新の時期になりましたが,
 二人して,大きな思い違いをしていたようで,これも,ジェジェジェ
 の出来事でした。
 安心していた10年間はなんだったのか,と二人でがっかり
 しました。
 それと,更新するつもりのなかったドメイン,「mabo.mabou.org」
 の更新期限が過ぎました。自宅で,サーバーをたてていた時の
 ものですが,それで,以前利用していた「ieserver」を使おうと
 久しぶりのアクセスしたら,これもだめになってようで,つながり
 ません。
 まあ,「rspberry Pi」のサブのサブの運用にと思ってのことなので,
 あまり影響はないと思いますが。