• ベストアンサー

PHPの置換方法

<?php $begin = 'あいうえおかきくけこさしすせそ'; $replace = 'か*'; $last = ''; $word = str_replace($replace, $last, $begin); php> 以上のようにプログラムを組んで$wordの出力を『あいうえお』のように『か』以降をすべて空白で置換というプログラムを作りたかったんですがうまくいきませんでした。指定した文字列以降を全部置換するには*は使えないんでしょうか?また、ほかに方法があればアドバイスをいただけるとうれしいです。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • fire--
  • ベストアンサー率49% (146/293)
回答No.1

str_replaceでは日本語も正規表現も使えません。 日本語の正規表現による変換をするならば、mb_ereg_replace関数です。 phpの日本語マニュアルは http://www.php.net/manual/ja/ にあります。 mb_ereg_replace関数の説明は http://www.php.net/manual/ja/function.mb-ereg-replace.php 正規表現は http://www.php.net/manual/ja/reference.pcre.pattern.syntax.php *は直前にある文字の0回以上の繰り返しになります。 "か.*"で良いはず。 あと、phpを閉じるのは ?> ですね。

kotakota1010
質問者

お礼

回答ありがとうございます。 本当は日本語ではなくhtmlを置換するものを作ろうとしたんで方向的には合っていそうなことが分かりました。ちゃんと?>で閉じているし、何でできないのか・・・。まぁ、もう少しチャレンジしてみます。

kotakota1010
質問者

補足

・・・・・と思ったらできました!!!*の前にピリオドを忘れてました。助かりました。ありがとうございました。

関連するQ&A

  • ヒットする初回のみ置換する方法

    あいうえおかきくけこあいうえおあいうえお という文字列があった時、 初回の「あいうえお」のみ空に置換して かきくけこあいうえおあいうえお としたいのですが、str_replace()だと全部置換されてしまいますし、 preg_replace()やmb_ereg_replace()ではうまく置換されません。 対象とする文字列は、実際はHTMLタグやマルチバイトが混じっています。 置換するべき文字列は、全く同様のものが対象文字列内にも必ず含まれています。 preg_replace()やmb_ereg_replace()でも可能なのかもしれませんが、 どうやればいいのか分かりませんでした。 どなたかご教示下さい。

    • ベストアンサー
    • PHP
  • php 指定文字列以降の削除

    phpにて半角スペース以降の文字列を問答無用で削除するというプログラムを作ろうとしてるのですが上手くいきません。 どうすればできますでしょうか? ご教授のほどよろしくお願いいたします。 ---- ソースコード $str = '2017/1/1 10-28'; if (preg_match("/ /", $str)){ $replace = str_replace(' ', '', $str); } echo $replace;

    • ベストアンサー
    • PHP
  • PHPの空白除去

    PHP5において 半角の前後空白を削除する関数trimは理解してます。 文字列中にある半角及び全角の空白を除去するには 文字列置換用の関数、例えばstr_replaceを使って置換すれば 全て空白を除去出来ます。 例: ---------------------------------- $string=" あ い う え お "; $all=" ";//全角スペース $half=" ";//半角スペース $no="";//削除用変数 $string=str_replace($all,$no,$string); $string=str_replace($half,$no,$string); ---------------------------------- 最後の2行を書けば置換が出来るのですが、問題はこの二つの関数をまとめてクラス化し、再利用したいと思っています。 クラスの作成方法及び使用方法がまだまだ理解していないので、困ってます。どなたかお力になって頂ければ幸いにございます。

    • ベストアンサー
    • PHP
  • PHPでHTMLファイル置換 プログラムについて

    以下のプログラムを書きました。 あるHTMLファイルをテンプレートとし、 中に記述している置換文字列を動的に 表示させるというものです。 しかしなかなか表示されません。 どこがおかしいのでしょうか? --template.html-- <html><head><title>test</title></head> <body> 表題 他いろいろ <!-- data replace --> フッター いろいろ </body></html> --index.php-- $page_lines = File("template.html"); $all_lines=''; foreach( $page_lines as $line ){  $all_lines .= $line; } $str = "<div>出力用データいろいろ</div>"; print preg_replace(/<!-- data replace -->/,$str, $all_lines); 以上です。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ワードファイルの一括置換プログラム

    キーワード(80種類程)が含まれたワードファイル(10ページ程度)と、 キーワード(1行目)とそれに対応した文字列(2行目以降)が書かれたエクセルファイル(400行程)があります。 たとえば10行目が指定された場合、10行目に書かれた文字列に置換したワードファイルを作るプログラムを作りたいです。どうやって作ればよいのか、アドバイスお願いします。 1)C言語で、 ワードファイルの文字列置換コマンドができる関数 replace() エクセルファイルのセルの文字列を取得する関数 str() があれば、プログラムは以下のようになりますが、これらの関数が見つかりません。 2)エクセルやワードのマクロで何とかなるのかも知れませんが、エクセルファイルは自分の物ではないので参照するだけで書き込みはしたくありません。 3)C#であれば、今回ほしいreplace() 関数が作れそうな記事は見つかりました。 http://mutatsu.blog.fc2.com/blog-entry-25.html でも、ややこしくてよくわかりません。Cの関数でないのでしょうか? ーーー ワードファイルA エクセルファイルB char str1[BUFSIZE],str2[BUFSIZE]; int x,y,table1; while( (str1 = str(B, table1, x, y0)) != NULL) {  str2 = str(B, table1, x, y);  if(str2 != NULL) {   replace(A, str1, str2);  }  x++; }

  • 変数内のURL文字列を置換させたい

    変数に格納した文字列のうち、URLを以下のようにして 置換しようとしましたが、置換されませんでした。 $html = str_replace("www.sample.com/hoge", "hoge.hogeoge.net", $html); str_replace の使い方が間違っているのでしょうか。 どうぞ宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • ダブルクォーテーションが置換できません

    いつもお世話になっております。 PHP初心者です。 シングルクォーテーションとダブルクォーテーションを文字列として入力したいと思い、以下のように記述しました。 -------------------------------------------------- $naiyo = $_POST['naiyo']; $search = array('\'','"'); $replace = array('\'\'','\"'); $naiyo2 = str_replace($search,$replace,$naiyo); -------------------------------------------------- シングルクォーテーションは置換された(文字列として表示された)のですが、ダブルクォーテーションは表示されず、ダブルクォーテーション以下の文字列が消えてしまいます。 置換ができていないというよりも、そもそもダブルクォーテーションが検索に引っかかってもいないようです。 どのようにすればダブルクォーテーションも置換できるか、お分かりの方がいらっしゃいましたらご教示ください。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • 「ゞ」のみ置換するにはどうすればいいでしょう?

    「ゞ」を置換したいのに、 「ゞ」の次の文字まで置換されてしまう。 Sub test() Dim str会社名 As String str会社名 = "いすゞ自動車" Debug.Print Replace(str会社名, "ゞ", "ず") End Sub を実行すると 「ゞ自」が対象になってしまうのですが、 どうしてでしょうか? 「ゞ」は一文字ですよね? Replaceで「ゞ」のみ置換するにはどうすればいいでしょう?

  • 文字列のアスタリスク置換

    PHP4でDBはMySQLを使用しています。 DBから取り出したいろいろな長さの文字列を*に置換したいのですがどのようにしたら良いでしょうか。 str_replaceを用いて置換をしようとしていますが文字列長が一定でないため難しいです。 宜しくお願い致します

    • ベストアンサー
    • PHP
  • str_replaceで文字化け

    お世話になります。 PHPでstr_replaceを使用しましたら、 「ー」や「・」などの文字が、文字化けを してしまいました。 いろいろ調べたのですが、よく分からずに 困っています。 PHPで文字の置換を行いながら、文字化けを しない方法はどのようにしたらよいのでしょうか。 $abc = str_replace(" ", "", $abc); のあとに$abcを出力しましたら、文字化けをして しまいました。 よろしくお願いいたします。

    • ベストアンサー
    • PHP