• ベストアンサー

PHPで文字列内に指定した文字が何文字あるか

mpxの回答

  • mpx
  • ベストアンサー率71% (149/209)
回答No.2

>> eregやin_array、countなどを使用したけど、 指定の関数ではありませんが、以下ではだめですか? <?php $test = "●19-■20-■21-▼22-■23-●18"; print preg_match_all ( '/■/',$test,$dummy); ?>

hukazuo
質問者

お礼

ありがとうございました。 これもまた、できました。

関連するQ&A

  • 配列の中に一部の文字があるかどか確認したい。

    <? header("Content-Type: text/html; charset=EUC"); $sample = array('test1' => "aaa 000 222 333" ,'test2' => "b 555 888 999",'test3' => "c 777 111 10"); if(in_array("222",$sample)){ echo "●"; } if(in_array("aaa 000 222 333",$sample)){ echo "○"; } ?> というようにPHPを記述すると「○」はでるのですが、 「●」がでません。 eregのように配列の中に一部の文字があるかどうかを確認する場合はどうしたらよいのでしょうか。

    • 締切済み
    • PHP
  • PHP間の引数

    おはようございます。 PHP間の引数に多次元配列を使用したいと考えています。 test1.phpで$array[a][b]を作成し test2.phpでそれを表示したいとかんがえています。 HTMLを使用していもかまいません。 宜しくお願いいたします。

    • 締切済み
    • PHP
  • phpについて。文字列の長さを指定する方法

    test1.php で、 コード:[textbox] という項目を表示します。 textboxに打ち込んでほしいことは、必ず半角英数字6文字です。 ここの値をpostで飛ばす?あまり良くわからないのですが、 入力した後 test2.php にジャンプさせます。 もし、[textbox」内が半角英数字6文字でなければ、 ジャンプボタンを押したときに、 「コードは半角英数字6文字で入力してください」 というような表示をしたいのですが、できますでしょうか?? どなたか教えてください!!

    • ベストアンサー
    • PHP
  • PHP5で配列の初期宣言の書き方で失念しまして、エラーになります。

    PHP5で配列の初期宣言の書き方で失念しまして、エラーになります。 $test = array( [1, 2, 3], [4, 5, 6] ); Parse error: parse error, expecting `')'' in という書き方はエラーになりますが、省略タイプ[]で データを宣言する方法が知りたいです。 for ($i = 0; $i < count($test); $i++) { print($test[$i][0] . " " . $test[$i][1] . " ". $test[$i][2]); } で 1 2 3 4 5 6 と表示させたいです。

    • ベストアンサー
    • PHP
  • 文字列から指定した文字を取り出す

    たとえば $test = "■-●-△-★-■■-■-■"; という文字列があったとして、 -で文字を区切り、■■は含めず■のみを取り出したい場合、 どのようにしたらいいのでしょうか。 $split = split("-",$test); $count_split = count($split); for($i=0; $i < $count_split; $i++){ if($split[$i] == "■"){ echo "{$split[$i]}"; } } としていますが、もっとスマートにできないのでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • perlの引数が不安定になります。

    perlの引数が不安定になります。 具体的には、 同じ値が返されるはずなのに、返されません。 私の持っている、入門用の本を調べたのですが全くわかりません・・・ 分かる方、教えていただけないでしょうか。 宜しくお願い致します。 open IN, 'Testfile.txt'; #Testfile.txtは、ある程度の大きさがあったほうが良いと思うので、ヤフーのトップページのソース全てなどが適当かもしれません。 my @array = <IN>; close IN; my $count = "1"; print &test(@array,$count); #何も表示されない print "<HR>"; print &test2($count,@array); #1が表示される。 sub test() { my (@array,$count) = @_; return $count; } sub test2() { my ($count,@array) = @_; return $count; }

    • ベストアンサー
    • Perl
  • PHPの文字列の比較について

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

    • 締切済み
    • PHP
  • phpでcsvデータをランダム表示について

    下記はcsvデータをランダムに1つだけ抽出するphpのプログラムですが、1度表示したデータに色をつけるとか、表示させない方法はありますか? <!doctype html> <html> <head> <meta charset="UTF-8"> <title>無題ドキュメント</title> </head> <body> <?php // 抽出数 $count = 1; $list = array(); // 読み込みCSVファイル $lines = file('test.csv'); shuffle($lines); foreach ($lines as $line) { if ( ! in_array($line, $list)) { array_push($list, $line); if (count($list) >= $count) { break; } } } // CSVファイルに出力 $file = fopen('test2.csv', 'w'); foreach ($list as $l) { echo $l.'<br>'; if ($file) { fputs($file, $l); } } fclose($file); ?> </body> </html>

    • ベストアンサー
    • PHP
  • PHP array関数の[ ]内の値の表示

    mySQLのデータベースでテーブルを作成、af1~af5のカラムには、に下記のように数値が入っているものと入っていないもの(NULL)があります。 af1 ='10' af2 ='15' af3 ='' af4 ='20' af5 ='' 【作りたいPHP】 数字が入っているカラムがあれば、そのカラム番号(af1なら1、af2なら2)のうちもっとも若い番号1つだけ抽出(上記のカラムであれば3)し、全てのカラムが埋まっていれば0を返すPHPを組みたいと考えています。 <?php $a2 = array( 1=>$row_friend_name['af1'], 2=>$row_friend_name['af2'], 3=>$row_friend_name['af3'], 4=>$row_friend_name['af4'], 5=>$row_friend_name['af5'], ); $empty = array_filter($a2, function($i){return !$i;}); var_dump($empty); ?> 上記のPHPを組んだところ、var_dumpの答えが array(2) [3]=>NULL [5]=>NULL となります。 これを流用し、$emptyの中に[1]や[2]などの記号が入っているかどうかを見極めさせ、そこから1,2,3の数字(空きカラム)を導きだそうと考えました。 "array(2) [3]=>NULL [5]=>NULL"であれば、[1]や[2]を順番に探していき、最初に出てきた[3]を見つけて、'3'を表示させることになります。 *[3]* というワイルドカードを使ったlike検索のような形にしてみましたが、残念ながら検知してくれません。「見つからなかった」という意味の「0」が答えになっています。 マニュアルを何度も読見返したのですが、どうしても[3]=>NULL の3を抽出、表示する方法が分かりません。 大変お手数ですが対応方法についてご教授頂きたくお願い致します。 (なんとか自分で対応しようとしたのですが、納期と他の仕事の関係で、これ以上長時間勉強する時間がとれません。何卒宜しくお願い致します) 当方が作って検知出来なかったPHP <?php $a2 = array( 1=>$row_friend_name['af1'], 2=>$row_friend_name['af2'], 3=>$row_friend_name['af3'], 4=>$row_friend_name['af4'], 5=>$row_friend_name['af5'], ); $empty = array_filter($a2, function($i){return !$i;}); if (in_array('*[1]*', $empty, true)) { echo "'1\n"; } elseif (in_array('*[2]*', $empty, true)) { echo "2\n"; } elseif (in_array('*[3]*', $empty, true)) { echo "3\n"; } elseif (in_array('*[4]*', $empty, true)) { echo "4\n"; } elseif (in_array('*[5]*', $empty, true)) { echo "5\n"; } else { echo "0\n"; } ?>

    • ベストアンサー
    • PHP
  • PHP requireでのURLパラメータ指定

    PHPにてアクセスカウンターを作っているのですが、呼び出したときのパラメータにて合計カウント数、本日のカウント数、昨日のカウント数のどれを表示するのか分けるプログラムを作成しました。 直接アドレスバーにて、 http://localhost/counter/count.php?mode=total とパラメータ指定したときにはきちんと表示出来るのですが、他のPHPファイルから require ("./count.php?mode=total"); で呼び出すと、 Warning: require(./count.php?mode=total) [function.require]: failed to open stream: No such file or directory in C:\xampp\htdocs\counter\index.php on line 7 Fatal error: require() [function.require]: Failed opening required './count.php?mode=total' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\counter\index.php on line 7 というエラーが出てしまいます。 色々調べたところ、相対パス指定のときにはパラメータ指定が出来ないという情報があったので、絶対パスで指定してみたのですが、やはり上手くいきません。 Warning: require() [function.require]: http:// wrapper is disabled in the server configuration by allow_url_include=0 in C:\xampp\htdocs\counter\index.php on line 7 Warning: require(http://localhost/counter/count.php?mode=total) [function.require]: failed to open stream: no suitable wrapper could be found in C:\xampp\htdocs\counter\index.php on line 7 Fatal error: require() [function.require]: Failed opening required 'http://localhost/counter/count.php?mode=total' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\counter\index.php on line 7 というようにエラーが出てしまいます。 どのようにすれば上手く表示できるでしょうか? 是非回答よろしくお願い致します。

    • ベストアンサー
    • PHP