あるディレクトリ内(./)のファイルをチェックし、特定の文字列(".aaa"と"cccc"の両方)があるかをチェックし、その特定の文字列が含まれるファイルがあればあるメールアドレス宛(xxx@mmm.com)にメールを送信するスクリプトを考えています。下記スクリプトの☆☆☆のところにその関数が入ると思うのですが、自力では解決不能なためご教授願います。
<?PHP
if ($dir = opendir("./")) {
while (($file = readdir($dir)) !== false) {
if(preg_match("/.aaa/",$file)) {
if(preg_match("/cccc/",$file)) {
☆☆☆
}
}
}
closedir($dir);
}
?>
No.3ベストアンサー
- 回答日時:
#2です
色々問題のあるスクリプトを書いてしまいました^^;
すみません、訂正です。
<?php
$message="";
if ($dir = opendir("./")) {
while (($file = readdir($dir)) !== FALSE) {
if(strpos($file,".aaa") !== FALSE && strpos($file,"cccc") !== FALSE) {
$message.="{$file} exists.\n";
}
}
closedir($dir);
}
$message = wordwrap($message,70);
mail("xxx@mmm.com","My Subject",$message);
?>
No.2
- 回答日時:
どのようなメールを送りたいのかによりますが、
英文だけの文字を送りたいのであればmail()関数で以下のようにします。
$message = "{$file} exists.";
$message = wordwrap($message,70);
mail("xxx@mmm.com","My Subject",{$message});
ただ、これだけでは複数ファイルが存在する場合には沢山送られてしまいますので、以下のようにします。
<?PHP
$message="";
if ($dir = opendir("./")) {
while (($file = readdir($dir)) !== false) {
if(preg_match("/.aaa/",$file)) {
if(preg_match("/cccc/",$file)) {
$message.="{$file} exists.\n";
}
}
}
closedir($dir);
}
$message = wordwrap($message,70);
mail("xxx@mmm.com","My Subject",{$message});
?>
なお、日本語を含んだメッセージを送信したい場合は、
mail()の代わりに、mb_send_mail()を使用します。
その際、mb_language()でエンコードに使用する言語を設定します。
mb_language("Japanese");
mb_internal_encoding("sjis");
mb_send_mail("xxx@mmm.com","My Subject",{$message});
http://jp.php.net/manual/ja/function.mail.php
http://jp.php.net/manual/ja/function.mb-send-mai …
p.s.
あまりmail関数は使ってないので自信はありません;
間違っていたらどなたか説明をお願い致します^^;
No.1
- 回答日時:
. (ドット)は、正規表現では\n以外の1つの任意文字を表すため、
\.とする必要があります。
<?PHP
if ($dir = opendir("./")) {
while (($file = readdir($dir)) !== false) {
if(preg_match("/\.aaa/",$file)) {
if(preg_match("/cccc/",$file)) {
☆☆☆
}
}
}
closedir($dir);
}
?>
ただ、これだけのマッチングであれば正規表現は使わずに
strposでチェックする方が望ましいです。
if ($dir = opendir("./")) {
while (($file = readdir($dir)) !== false) {
if(strpos($file,".aaa")!==FALSE && strpos($file,"cccc")!==FALSE) {
☆☆☆
}
}
closedir($dir);
}
この回答への補足
ご回答感謝いたします。
strposでチェックする方法でいきたいと思います。
私の質問内容に不備があり申し訳ございません。
☆☆☆に入る関数がわからないのですがご教授いただけますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルの行数取得
-
PHP、ファイルロックの失敗で消...
-
値の取り出し方について教えて...
-
index.phpに入るには、どうすれ...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
Subversionのリポジトリの削除
-
ImageCreate関数が undefined f...
-
メールフォームのタイトルが文...
-
.phpと.incファイルの違いはな...
-
php 完了画面の送信メールのコ...
-
PHPのif文でその処理を途中で抜...
-
PHPsendmailにて送信元を変更
-
CSV出力にHTMLが入ってしまう
-
入力フォームの空白や改行を制...
-
現在位置より2つ上のディレク...
-
VB.NET 最下位のディレクトリ名...
-
VBSの「MsgBox」について
-
図に示す階層構造で,現在のデ...
-
MySQLのdatetime型の月日0を削...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPでFilename cannot be empty...
-
値の取り出し方について教えて...
-
stat failed
-
2つの画像ファイルが異なるファ...
-
独自INIファイルの操作をしたい...
-
Smartyで吐き出されたhtmlソー...
-
日本語のファイルが開けない
-
PHPで特定の文字列のみ抽出し、...
-
別のサーバにあるファイルの存...
-
shift-jisでfgetcsv
-
PHPでの別のサーバーのテキスト...
-
ファイル名は、数字の「0」(...
-
PHPでテキストファイルかどうか...
-
CSVファイルの文字コード変換に...
-
PHPのファイル操作
-
日本語が文字化けしないよう読...
-
PHPでAPI 出力はCSVを取得する...
-
phpのftp_get()でエラーが出ます。
-
PHPで外部ファイルから取り込ん...
-
php4、php5によるimplode()、fi...
おすすめ情報