質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

412閲覧

rtrimで該当しない文字列が削除されてしまう

moomoom

総合スコア19

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/02/18 04:39

PHPのrtrimで変な挙動にぶつかりました。

上の方は
A and B
となり問題ないのですが、

下の方で
X=%d and Y=%d
と取得したいのに最後のdがなくなって
X=%d and Y=%
になってしまいます。

php

1$str = "A and B and "; 2$str = rtrim( $str, "and " ); 3var_dump( $str ); // => string(7) "A and B" 4 5$str = "X=%d and Y=%d and "; 6$str = rtrim( $str, "and " ); 7var_dump( $str ); // => string(12) "X=%d and Y=%"

これはなんででしょうか?

ちゃんとd含め取得するにはどうすればいいのですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

"and "

末尾の「a」と「n」と「d」と「スペース」を削除するのですからdもなくなります
rtrimではなくpreg_replaceで良いのでは?

$str = "X=%d and Y=%d and ";
$str = preg_replace("/\s*and $/","",$str);
var_dump( $str );

投稿2020/02/18 04:47

yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

moomoom

2020/02/18 05:03

ありがとうございます。rtrimはまとまった文字「 and」として認識してくれるものじゃないんですね。「$」は調べてわかったんですけど、「*」はどのような意味で必要なのですか?
yambejp

2020/02/18 05:12

「\s*」で0文字以上の空白文字という意味です。 つまり空白文字があれば削除するし、なければ何もしません
moomoom

2020/02/18 05:28

空白がない場合も削除してくれる、という意味ですしょうか?下記のように。 // *があれば、空白がない場合も削除してくれる $str = "X=%d and Y=%dand "; $str = preg_replace("/\s*and $/","",$str); var_dump( $str ); // *がないと、空白がない場合に削除してくれない $str = "X=%d and Y=%dand "; $str = preg_replace("/\sand $/","",$str); var_dump( $str );
yambejp

2020/02/18 06:02

「(空白なし)and 」「 (空白1つ)and 」「 (空白いっぱい)and 」を削除します
moomoom

2020/02/18 06:39

なるほど、便利ですね。コメントありがとうございます。大変勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問