早速質問なんですが、変数$mojiに"aaaa bbbb cccc"と入っているものを
"aaaa,bbbb,cccc"としたいのですが下記のように
$moji = mbereg_replace("[ ]*$",",",$moji);
と、すると結果
"aaaa,,bbbb,,cccc"となってしまいます。
どなたかお分かりになられる方いらっしゃったら
ご教授お願いいたします。
失礼します。

このQ&Aに関連する最新のQ&A

php 置換」に関するQ&A: PHPの置換方法

A 回答 (1件)

ereg_replace関数を使うことで解決できます。



$moji = "aaaa bbbb cccc";
$moji = ereg_replace("\ ",",",$moji);

でうまくいくはずです。

第一引数が検索文字列(この場合、\のあとに半角スペースを入れる)、
第二引数が置換したい文字(この場合、三番目と四番目の「"」でくくられたカンマ)、
第三引数が置換対象文字列です。

関数の詳細については参考URLを参照してみてください。

参考URL:http://www.php.net/manual/ja/ref.pcre.php
    • good
    • 0
この回答へのお礼

masamisssさま、お早いレスありがとうございました。
おかげさまでご教授いただきましたとおりの方法で
うまくいきました。
参考URLもぜひのぞかせていただきます。
失礼します。

お礼日時:2001/06/26 12:04

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q$str=preg_replace('/\u3000/','  ',$str);

によってutf-8の空白文字をhtmlの空白文字に変換しようとしたのですがエラーになります
どうしたらいいのでしょうか?

Aベストアンサー

>そもそも?のところにコード表現で空白文字を入力する手段はないのでしょうか?
\xE3\x80\x80
で一応いいかと思いますが…

Q$str=mb_ereg_replace('goo','グッド',$str);

によって
$strの中の'good'を'グッド'に変更したいのですが
'good'は大文字と小文字を区別しないようにしたいのですがどうしたらいいでしょうか?
例えば
'goOd'も'グッド'にしたいのです。
PHPマニュアルには詳しい使い方が載っていないので困っています。

Aベストアンサー

大文字小文字を無視するなら
mb_eregi_replace
では?

参考URL:http://jp2.php.net/manual/ja/function.mb-eregi-replace.php

Q$test = array(80,60,22,50,75);を(22,60,80,50,75);変更

https://oshiete.goo.ne.jp/qa/9231613.html から
 $test = array(0=>80,1=>60,2=>22,3=>50,4=>75); のご回答をもとに
$test = array(80,60,22,50,75);を$test = array(22,60,80,50,75);に変更しました。
 結果が”最高得点22です。”と予想しておりました・・しかし、変わらずに
 ”最高得点は80です。”のままでした!?この場合ですが、考え方はとしまして、
 $test = array(2=>22,1=>60,0=>80,3=>50,4=>75);となったので、以上の結果となっ
との考えで間違いないでしょうか?
 よろしくお願いいたします。

Aベストアンサー

表現は未熟ではありませんが、Campus2さんがどのような思考をしているのかという意味で
国語の問題に近いと言っただけですのでご了承を〜

ちなみに今回のはキーに関しては何でもいいのです。
以下のコードでも最高点は80と出力されます。

<?php
//$test = array(80,60,22,50,75);
$test = array("apple"=>80,"tomato"=>60,"banana"=>22,"milk"=>50,"cake"=>75);

$max = 0;

foreach($test as $id => $value){
if($max < $value) $max = $value;
}

print "<p>最高得点{$max}です。</p>";
?>

また$id => $valueも関係性を示しているだけなので、
foreach文は以下のようにも記述できます(紛らわしいのでこんな書き方しませんが)。

foreach($test as $aaa => $bbb){
if($max < $bbb) $max = $bbb;
}

///////////////////////////////////////////

過去の質問
https://oshiete.goo.ne.jp/qa/9200257.html
でも答えましたが、

例えば配列
array("22","80", "75","60","50")
はキーを何も指定しない場合以下と同じになります。
array('0' =>"22",'1' =>"80", '2' =>"75",'3' =>"60",'4' =>"50");

array("50","80", "75","60","22")
と並び変えても
array('0' =>"50",'1' =>"80", '2' =>"75",'3' =>"60",'4' =>"22");
のままです。

表現は未熟ではありませんが、Campus2さんがどのような思考をしているのかという意味で
国語の問題に近いと言っただけですのでご了承を〜

ちなみに今回のはキーに関しては何でもいいのです。
以下のコードでも最高点は80と出力されます。

<?php
//$test = array(80,60,22,50,75);
$test = array("apple"=>80,"tomato"=>60,"banana"=>22,"milk"=>50,"cake"=>75);

$max = 0;

foreach($test as $id => $value){
if($max < $value) $max = $value;
}

print "<p>最高得点{$max}です。</p>";
?>

また$id => $value...続きを読む

Q$1$2$3 $2が空だったら$1と$3割る。

タイトルどおりです。

$1=100
$2=200
$3=300

これが

$1=100
$2=''
$3=300
と空だったら
($1+$3)/2
と、するにはどうしたら良いですか??

更に

$1=100
$2=''
$3=''
$4=400

と、空が二つ入った場合

$1=100
$2=200
$3=300
$4=400

と、折れ線グラフで表したら綺麗に直線にしたいんですが、どういう計算式、プログラムで出来ますか??

Aベストアンサー

まじめに答えれば「$1」なんて文法的に使えない例をあげられても
答えようがない

たとえば$aと$cだとして、変数名だけ見て$bが省略されているなんて
判断できない。

Qpreg_match( '/^(\D+)(\d*)$/' , $変数 , $regs )

if( ! preg_match( '/^(\D+)(\d*)$/' , $変数1 , $regs ) )
{echo ( 'invalid dirname: ' . htmlspecialchars( $変数1 ) );}
$変数2 = $regs[2] === '' ? '' : intval( $regs[2] ) ;

正規表現だと思うのですが、どういう意味か教えてください。

□分からないなりに考えてみました…
▽1行目
$変数の内容が、'/^(\D+)(\d*)$/'にマッチしなければ、$regs へ代入。
▽2行目
マッチしていた場合は、htmlspecialchars関数を実行した後、'invalid dirname: '+その結果を表示する。
▽3行目
$regs配列変数の1番目を、何かして、$変数2 へ代入する。

……誰か教えてください…。

Aベストアンサー

>どこら辺に問題ありそうでしょうか?

まずpreg_matchで$regsを生成していますが、マッチしないケース
すなわち「数字からはじまる文字列」の場合、$regsが未設定になります。
したがって$regs[2] === ''で評価すると$regsが未設定エラーになります。
またエラーレベルを下げた場合でも、$regs[2] === ''はfalseなので
数字ではない文字列をintvalで評価するため$変数2には0が代入されます。

やはりif分岐である程度場合分けをしっかりしてやらないといけないでしょう。
総じて$変数1に代入される文字列の想定を広げて、チェックしてやる必要があります。

また、仮にデータがきちんと通ったとして、$変数2は空文字か数字という
データ型が確定しないフローになっています
たしかにPHPは変数定義がいい加減ではありますが、あまりなんでも
かんでも入れればいいというものではありませんので、ある程度
変数の型が一律になるような工夫が必要だとおもいます。


このカテゴリの人気Q&Aランキング

おすすめ情報