プロが教えるわが家の防犯対策術!

お世話になります。
自宅のノートブックにXAMPP(5.6.24)をインストールして、
ApacheとPHPを使用し、とあるサイトの情報が更新されたときにメールを送るプログラムを動かしています。

そのプログラムはPHPで記述し、Windows7のタスクスケジューラとbatファイルを使って5分おきに動かしています。

PHPで更新を判断するためにfile_get_contentsで、そのサイトの情報を取得してstrstrを使って特定の文字列が表示されるかどうかとしています。

しかし、XAMPPを入れていないPCのブラウザに、そのPHPのアドレスを記入したら正常に動くのですが、batファイルを使用して動かした場合、更新を判断する文字列が、
「刀」や「倭」の場合にメールが送られて来ません。
「石」や「赤」の場合は送られてきます。

batファイルは
@echo off
C:\xampp\php\php.exe C:\Users\SAKURA\Desktop\SUZU\index.php
exit
です。


関係があるかはわかりませんが、更新を判断したいサイトのソースには、
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
と記述されています。

XAMPP(5.6.24)のphp.iniの文字コードはUTF-8にしています。
PHPのプログラムには、
header('Content-Type: text/html; charset=UTF-8');

mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');
mb_regex_encoding('UTF-8');
と記述しています。

初心者のためやってることが全然違っていたり、質問の情報に不備があるかもしれませんが、どなたか解決方法ご教示お願い致します。

質問者からの補足コメント

  • うーん・・・

    ご回答ありがとうございます。
    index.php
    の冒頭に、

    header('Content-Type: text/html; charset=UTF-8');
    mb_internal_encoding('UTF-8');
    mb_http_output('UTF-8');
    mb_http_input('UTF-8');
    mb_regex_encoding('UTF-8');

    と記述しているのですが、他に修正するところはありますでしょうか?
    また、他にどういった情報をお伝えすれば原因がわかりそうでしょうか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2016/11/18 23:27

A 回答 (1件)

それだけの乗法ではなんとも言えませんが。



HTTPサーバーと、コマンドからの実行とでは、同じように見えるPHPでも、若干の違いがあります。
例えば $_GET 等の変数の有無とか。

その違いが、動作の動きになっている可能性があります。



その文字からして、index.php 自体がShift_JISで書かれていて、「ダメ文字」に引っかかっている、というのがありそうです。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!