if分の複数条件についてNo.08447
tyyyu2005 さん 16/11/09 17:52
 
連投申し訳ございません。


$str1 = "メッセージ1";
$str2 = "メッセージ2";
$str3 = "メッセージ3";

gofiletop;

    if($base == ("abc.com") {
 message $str1;

    }else if($base == ("def.com") {
 message $str2;

    }else{
 message $str3;

    }

上記は
ファイル名がabc.comの場合、メッセージ1
ファイル名がdef.comの場合、メッセージ2
それ以外はメッセージ3

が表示されるマクロです。

例えば$baseに「abc.com_aaa_」のようなドメイン以降の文字列が含まれていても
メッセージ1が表示されるといった条件を付けるにはどうすればよろしいでしょうか。
※事前の処理で$baseに含まれる「/」は「_」に置換済みです。

またif文でbasenameが 「abc.com」 又は 「bbb.com」 の場合、「メッセージ1」
のようにor条件の設定も教えて頂けたらと思います。

何卒ご教授の程よろしくお願い致します。

[ ]
RE:08447 if分の複数条件についてNo.08448
tyyyu2005 さん 16/11/09 17:54
 
>連投申し訳ございません。
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>何卒ご教授の程よろしくお願い致します。


ファイル名がabc.comの場合、メッセージ1
ファイル名がdef.comの場合、メッセージ2
それ以外はメッセージ3

申し訳ございません。
説明に不備がございました。
下記の通りです。


$baseがabc.comの場合、メッセージ1
$baseがdef.comの場合、メッセージ2
それ以外はメッセージ3







[ ]
RE:08448 if分の複数条件についてNo.08449
天翔記jp さん 16/11/09 18:59
 
basenameのところで出てきた、
strstrを利用すればよろしいのではないでしょうか?



[ ]
RE:08449 if分の複数条件についてNo.08450
秀まるお2 さん 16/11/10 08:51
 
 $baseが"abc.com"を含むなら、ってことなら、

   if( strstr( $base, "abc.com" ) >= 0 ) {
       message "abc.comを含む";
   }

 となります。

 $baseの先頭が"abc.com"かどうかなら、

   if( leftstr( $base, 7 ) == "abc.com" ) {
       message "先頭がabc.comである";
   }

 みたいに、比較対象の文字列と同じ長さにleftstrで切って比較すればいいで
す。

 $baseが"abc.com"で始まるか、または$BASEが"def.com"で始まるって条件なら、

   if( leftstr( $base, 7 ) == "abc.com"
    || leftstr( $base, 7 ) == "def.com"
    ) {
       message "先頭がabc.comかdef.comである";
   }

 みたいになります。

 "ABC.COM"のように大文字になっててもマッチするようにするなら、tolower関
数を使います。

   $base_low = tolower( $base );
   if( leftstr( $base_low, 7 ) == "abc.com"
    || leftstr( $base_low, 7 ) == "def.com"
    ) {
       message "先頭がabc.comかdef.comである";
   }

 みたいになります。

[ ]
RE:08450 if分の複数条件についてNo.08451
tyyyu2005 さん 16/11/10 19:05
 
> $baseが"abc.com"を含むなら、ってことなら、
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> みたいになります。

秀まるお2さん、天翔記jp さん

ありがとうございます。
おかげさまで無事解決出来ました。

[ ]