• ベストアンサー

PHPで文字列の検索

misschoiceの回答

回答No.1

strposは使ったことがないので予想ですが... strpos関数は見つからなかったときに「false」を返すようです。 そこで、ちょっと書き換えて、 if(strpos($txtContents, "テスト") == false){  処理2; }else {  処理1; } としてみたらどうですか?

chachako
質問者

補足

ありがとうございます。 #NO2さんの回答とあわせてできました。 でも、なぜ>=ではだめなんでしょうか? >=0だと、falseの場合も含まれてしまいます。 この順番でもできないことはないのですが、やはり処理1、処理2の 順に記述したいので、原因などわかりましたらまた教えてください。

関連するQ&A

  • 文字列を判断して処理をする書き方

    2バイトの文字列の中身によって違う処理をするプログラムを作成しています。 数値ならば、 switch(no){ case 10: 処理1 break; case 20 処理2 break; ・ ・ ・ } と書けるのですが、文字列だと if(strncmp(no,"10",2) == 0){ <処理1> }else if(strncmp(no,"20",2) == 0){ <処理2> }else if ・ ・ ・ } というような書き方しか分かりません。数値同様にswitch文できれいに書くような方法はありませんでしょうか? もしくはこうすればスマートに書けるというようなものがあればお教えください。よろしくお願いします。

  • 時刻を表す文字列からn分後の値を求めたい

    PHPを勉強している素人です。 タイトルが分かりにくくてすみません。 たとえば、「17:31:35」というような時刻を表す文字列があります。 これは17時31分35秒を表しているんですけれども、 この文字列からn分後の時刻を求めたいのですが、 単純に31+n と計算した場合、60以上になってしまう場合があります。 なにか上手な方法があれば教えてください。 そして、その値を元に 「17:31:35から5分以内の処理」とそうでない処理を if ~ elseで出来ればと思います。 どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • 文字列を点滅させたい

    JavaScriptを勉強しているのですが、文字を点滅させたいので下記の様なプログラム作成したのですがELSE文に絡む事ができません。 どうして動作しないのか?わからず投稿しました。 どうすればよいのでしょうか? 宜しくお願い致します。 <script language="JavaScript" type="text/javascript"> <!-- var flg=1; function test() { if (flg==1) { document.write("元気?"); flg=0; }else{ document.write(""); flg=1; } setTimeout("test()",2000); } // --> </script> <BODY onLoad="test()"></BODY>

  • PHPの文字列の比較について

    PHPの文字列の比較について質問です。 $hoge = "文字列¥¥テスト"; $foo = "文字列¥テスト"; とあった場合 var_dump($hoge == $foo); とすると trueがかえってきます。 バイト列としてみた場合 エスケープしたバックスラッシュと 構文上、エスケープの必要のないバックスラッシュの文字列上の 比較ですがこれが、なぜかtrueがかえってきます。 これは、当然の結果なのでしょうか? PHPは文字列を比較するさい、バイト列としての文字列のならびより アウトプットされる結果を比較しているということでしょうか? それとも、単純に上記変数$hogeと$fooはバスックスラッシュの使用方法は 関係なく同一のものとして扱われるのでしょうか?

    • 締切済み
    • PHP
  • PHPの文字列をJavascriptの変数にする

    PHPの変数に格納された文字列を、直接Javascriptの変数の一部として格納しようと考えています。 例:) <script> var txt = "<?php echo $text; ?>"; </script> しかし、$textにダブルクォーテーションなどの文字が含まれていると、スクリプト全体が破綻します。今のところ、PHPの中で、問題を起こしそうな文字列を変換するように処理しています。 例:) $text = str_replace("\\", "\\\\", $text); $text = str_replace("\"", "\\\"", $text); $text = str_replace("\n", "\\n", $text); これよりもスマートな方法(たとえば用意されている関数を使うなど)がありますでしょうか。

    • ベストアンサー
    • PHP
  • ファイル内の文字列を処理して、そのファイル内のphpスクリプトを実行

    いつも、お世話になります。 a.php 、b.phpについて a.phpで、 次のようにb.phpを読み込んで $filename = "b.php"; $array = file($filename); $html = join('', $array); そして、次のようにしてb.php内の文字列置換 $pattern="/xxxx/"; $replacement="yyyyy"; $html=preg_replace($pattern,$replacement,$html); そして、 print($html); とすれば、b.php内の文字列が置換された後で、html記載内容ががブラウザで表示されます。 ここで、 b.php内にphpスクリプトを記載した場合、そのphpスクリプトは実行されません。 a.phpで include_once($filename); とすれば、実行されます。しかし、b.php内の文字列を処理できません。 b.php内の文字列の処理と、b.php内のphpスクリプトの実行の両方を行う方法なんてないものでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 文字列の取得について

    配列には下記のような文字列が表示されています。 $array[$i]="text kldfjk kldof" このような長い文字列の場合にそこの ”text"とという文字列が表示されている場合には フラグを立てるというプログラムにしたいのですが、 このような処理ではうまくいきません。 何かよい解決策があれば教えていただけたらうれしいです。よろしくお願いいたします。 $single_1=strpos($array[$i],"text"); $flag=1;

    • ベストアンサー
    • PHP
  • PHPでクエリ文字列を利用する方法

    PHP初心者のKazukichiと申します。 PHPでクエリ文字列を利用する方法を教えて下さい。 具体的には、下記のように「リンクにクエリ文字列を埋め込む方法」を採りたいのですが、その場合のPHPスクリプトの記述方法についてご教示頂きたいのです。 <a href="kensaku.php?year=2005">2005</a> この場合、yearが変数となるようですが、この変数をPHPスクリプト(kensaku.php)で受け取るには、どのように記述すればよいのでしょうか。 よろしくお願い致します。

    • 締切済み
    • PHP
  • 検索に関する文字コード

    指定した文字列を元にデータベースよりデータを検索する プログラムを作成したんですが、下記のような不具合が 発生します。 1.例として"ABC DEF"というようにスペースが間に入っている文字列をURLの後に"http://www.aaa.com/test.php?test=ABC DEF"という風にして送ってやり、test.php側で $_GET["test"]として受け取った時に"ABC"となりスペースの前で区切られてしまいます。 2.HTML上のテキストボックスに"ABC CDF"という風に入力してtest.phpに送った場合、test.phpでは文字化けされた状態で受け取ってしまう。 3.特定はできませんが、日本語文字列でも文字化けするものとしないものがあります。 こういった現象から正しく検索処理が行えません。 ちなみに文字コードはすべてEUCで統一しています。 色々調べてはみたんですが、原因がよくわかりません。 解決策等ご存知でしたら教えていただけますよう 宜しくお願い致します。

    • 締切済み
    • PHP
  • コマンド 文字列検索 正規表現について

    すみませんどなたか教えて下さい。 ある処理が失敗するとエラーのlogファイルを出力します。 エラーがないと0バイトのファイルが作成されます。 そのファイルが0バイトの場合、次の処理を実行させるbatファイルを作成中です。 ファイルサイズの取得ができればいいのですが、コマンドで見つけ切れませんでした。 そこで、logファイルをfindftr /cで1文字でもあれば、、、で判断するようにしました。 正規表現を使って試しましたが、文字があってもヒットしません。 どなたかアドバイスをお願いします。 findstr /c:".*" d:\a.txt >nul 2>&1 if errorlevel 1 ( remエラーlogファイルに文字列なし ) else ( rem エラーlogファイルに文字列あり )