• ベストアンサー

条件式、htmやcgiやphpが含まれる場合~

お世話になります。 Perlの条件分岐で、「もし、対象文字列の中に、htm又はcgi又はphpが含まれる時は・・・処理」という事をしたいのですが、条件式をどのように記述すれば良いのでしょう。 よろしくお願いします。

  • Perl
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

正規表現の一致演算子を利用すれば良いのでは。 $s = 'test.html'; if ( $s =~ /htm|cgi|php/ ){ print 'OK'; } else { print 'NG'; }

souta_n
質問者

お礼

ありがとうございます。助かりました。

その他の回答 (1)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

条件を正規表現(参考URL1)で表し、マッチ演算子(参考URL2)で判定します。 $str='文字列'; if($str =~ m/htm|cgi|php/){ #$str中にhtm又はcgi又はphpが含まれていた場合の処理 }

参考URL:
http://www.rfs.jp/sitebuilder/perl/02/09.html,http://www.rfs.jp/sitebuilder/perl/05/func/m.html
souta_n
質問者

お礼

ありがとうございます。助かりました。

関連するQ&A

  • CGIタイプのPHPとは・・・?

    PHPのCGIタイプとはどのようなものなのでしょうか? 借りているレンタルサーバーで普段はxxx.php(xxxはファイル名) として使用していますが、このバージョンがphp4.2.2なのです。 それで、php5のコマンドを使用する必要性が出てきたのですが、当然、xxx.phpでは使用できません。 が、レンタルサーバーのマニュアルに、 「PHP5はCGIタイプで使用できます。SSIタイプではPHP4となります。PHP5をご利用の場合、PHP5で記述したスクリプトの一行目に#!/usr/bin/php5 または #!/usr/local/bin/php5 と記述して下さい。CGIタイプのPHPの場合、拡張子はCGIに準じます。」 とあります。 質問 1.このCGIタイプのPHPとは、拡張子が.cgiというだけで中身がphpの記述なのでしょうか?(しかし1行目に記述する#!/usr/bin/php5の記述はperlのような気もします)。 もしくはPHP5を利用したい場合はperlで記述するということでしょうか(意味不明ですが)?? 2.あと後学のために教えてほしいのですが、私が普段使用している.phpはSSIタイプとのことですが、マニュアルに 「SSIタイプのPHPの場合PHPファイルの拡張子を.phpまたは.php4にして下さい。これらの拡張子のファイルだけがPHPファイルとして処理されます。また、拡張子が「.phps」のファイルは、phpソースとして処理されます。」 とあります。これはhtmlコードの中に<?php~?>を記述できるからSSIタイプと言っているのでしょうか?(私は普段はphpコードでhtmlを生成しています)。 あと、phpソースとはどのような処理のことを言うのですか? 初心者的な質問ばかりですみません。どうしてもPHP5を利用したいのでお教えいただければと思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • CGI版PHPについて

    一般的なPerlのCGIが実行可能な状態のApache(Linux上)にCGI版のPHPを追加インストールした場合、ApacheはスクリプトがPerlであるかPHPであるかの違いをどう認識するのでしょうか? 方法1 スクリプトはどちらも*.cgiとして作成し、スクリプト内先頭行のperlやphpへのパスの記述で認識する 方法2 perl→*.cgi php→*.php のようにhttpd.confや.htaccessで設定する 初心者のためこの二つくらいしか思い浮かばないのですが、どちらかが正解だったりしますか??

    • ベストアンサー
    • PHP
  • PHPで文字列の形で条件分岐を行いたいです。

    PHPで文字列の形で条件分岐を行いたいです。 例えば、0801と0401という文字列があり、左2文字で条件分岐したいです。 もし、左2文字が08なら~、もし、左2文字が04なら~。 という構文を書きたいと考えております。 ご助言どうぞよろしくお願いします。

    • 締切済み
    • PHP
  • htmlファイルにPHPとCGIを埋め込む

    ロリポップサーバーをレンタルしてサイトを開設しています。 現在.htaccessファイルに下記のコードを記述して.htmlファイルにPHPのコードを埋め込んで実行させています。 「AddType application/x-httpd-php .htm .html」 これは問題なく動いているのですが、別に.htmlファイルにCGIのコードを記述し動作させたいと思っているのですが、これは可能でしょうか? .htmlファイルのまま、PHPとCGIのコードを一緒に記述し動作させたいです。 .htaccessで上記のコードの下に「AddType application/x-httpd-cgi .htm .html」というコードを記述してみましたが、動作はしませんでした。 埋め込みは下記のようにしました。 「<!--#include file="cgiファイルまでのパス" -->」 ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

    • 締切済み
    • CGI
  • cgi(perl)からphp呼出

    どなたかご教授ください。 perlのcgiからsystem関数でphp(コマンドで実行可能なコード)を実行して返値を得たいのですが perlのcgiの実行結果では画面に文字化けを起こしたような結果が帰ってきます。 cgi(perl)からphpを実行するにはどのように すればいいのでしょうか? ご教授ください。

    • 締切済み
    • PHP
  • 条件式について

    お世話になります。 if (n == "aaaa"){aaaaに関する条件式; } else if (n == "bbbb"){bbbbに関する条件式; } else if (n == "cccc"){ccccに関する条件式; } とある場合、n に「aaaa」、「bbbb」、「cccc」以外の 不特定の文字列が入った場合の記述方法を教えてください。 よろしくお願い致します。

  • PHPでCGIの処理結果を使うには?

    cgiの処理結果をPHPで使う方法を教えてください。 いろいろ調べてみたのですが、わかりませんでした。 内容としては以下です。 http://xxx.xxx.xxx/xxx.cgi が既にあり、これは共有して使っているものなので、変更できない。 このcgiの処理内容は、引数を渡して、POSTすると、処理結果に応じて、trueかfalseをprintするというものです。 このcgiの処理結果をPHPで受け取り、処理の分岐のための判別に使いたいと考えています。 試したのは、 1.htmlから値を渡してpostする。 →cgiのURLに遷移してtrueが表示される。 2.PHPでheader(Location:)で指定してみる。 →1と同じ です。 どうすればいいのか教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PerlのCGIとPHPを

     特定のディレクトリのCGIの中にPHP(Apacheのモジュール版)を書き、(CGIで<?php~?>とHTMLを出力させる)Perl/CGIを実行したときにその出力の中に含まれるPHPを実行させたくて、.htaccessに AddHandler application/x-httpd-php cgi AddHandler cgi-script .cgi を書いたのですが、どうやらPHPのAddHandlerの後に書かれているCGIの方が優先され、PHPが実行されず、CGIのみが実行されます。  順序を逆に書いても、今度はPHPが優先されてしまい、どちらか片方しか実行されません。  どうすれば、両方同時に実行させられるでしょうか、教えてください。  それが不可能ならば、とりあえずPerl/CGIからPHPを呼び出して先に実行させるようなことができるのならば教えてください。  ちなみに、httpd.confには拡張子cgiをすべてのディレクトリでCGIとして実行、拡張子phpもすべてのディレクトリでPHPとして実行させるようにAddHandlerされています。 Apache/2.0.58(Windows版) PHP/5.1.6 CGI: ActivePerl 5.88 です。

    • ベストアンサー
    • PHP
  • ifの条件式

    お世話になります。初歩的な質問とは思いますが、どうぞよろしくお願いします。 HTMLでのフォームの一部に次のようなラジオボタンの記述をしています。どちらか選んでCGIに渡し、「試験1」を選んだなら処理1を、「試験2」を選んだなら処理2を行いたいのですが、ifの条件式の書き方(ラジオボタンで選んだ方の値を受け取る変数の書き方)が分かりません。 ----HTML----------------------------------------- <input type="radio" name="test" value="テスト1"> 試験1 <input type="radio" name="test" value="テスト2"> 試験2 ----CGIスクリプトの一部-------------------------- if( ? ? ? =="テスト1"){ 処理1 }else{ 処理2 } ----------------------------------- ifの条件式の書き方を教えて下さい。 よろしくおねがいします。

    • ベストアンサー
    • Perl
  • bash 条件式について

    他人が作ったシェルスクリプトを見てるんですが、私自身初心者でいくつかよく分からないところがあります。 if文条件式(というよりtestの条件)の等号記号についてです。 if [ 条件式 ]; then で、 1)2つの文字列が等しいかどうか確認する際に用いる記号は = でいいんでしょうか? テキストとして見ている書籍には、”=”で書いてあるのですが、今動いているというスクリプトには”==”と記述してあります。 2)2つの数値が等しいかどうか確認する際に用いる記号は -eq でいいんでしょうか? 今動いているというスクリプトには”==”と記述してあります。”==”と記述してもインタプリタのほうで吸収してくれて動かしてくれているのでしょうか? 今、見ている書籍のサンプルソースにも、文字列比較で、"="と書いてあったり、"=="と書いてあったりとよく分かりません。条件式はif文、それ以外で違ったりしてくるんでしょうか? すみません。よろしくお願いします。

専門家に質問してみよう