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

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

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

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

Q&A

解決済

3回答

11042閲覧

phpで文字列から&nbsp;&nbsp;&emsp;&ensp;&ensp;や<br>を消したい。

moitaro

総合スコア443

PHP

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

0グッド

1クリップ

投稿2018/10/09 09:17

お世話になっております。

PHPで製品をダウンロードするサイトへのリンクを貼った
メールを送信しております。

製品名の中で
htmlのレイアウト上必要な
や や や や<br>
を入れていたので削除したいのですが

php

1 $seihinmei = str_replace('<br>','',$seihinmei); 2 $seihinmei = str_replace('&nbsp;','',$seihinmei); 3 $seihinmei = str_replace('&emsp;','',$seihinmei); 4 $seihinmei = str_replace('&ensp;','',$seihinmei);

と実装していたのですが不格好だと思っております……

なにか出来るプログラマーの表記方法を教えて頂けないでしょうか?
このようなコーディングを他人に見られるのが恥ずかしいのです……

お忙しい所大変申し訳無いのですが上記お問い合わせいたします。

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

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

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

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

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

guest

回答3

0

ベストアンサー

str_replaceは配列が指定できますので、私は以下のようにすると思います。

$replaceTarget = array('<br>', '&nbsp;', '&emsp;', '&ensp;'); str_replace($replaceTarget, '', $seihinmei);

配列に文字列を追加していけば簡単に置換対象を増やせます。
もしパカパカと置換対象が増えるようなら関数化や設定ファイルへの追い出し等々考えますが、とりあえずはこれでやっちゃうかなと思います。

投稿2018/10/09 09:33

moredeep

総合スコア1507

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

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

moitaro

2018/10/09 09:39

ありがとうございます。 moredeepさんのが一番分かりやすいのでBAをつけます。 配列を指定出来たのですねっ^^; ありがとうございました。
moitaro

2018/10/09 10:22

$seihinmei=str_replace($replaceTarget, '', $seihinmei); ですねっ
guest

0

str_replaceは配列をつかえって置換できます

PHP

1$str= "a<br>b&nbsp;c"; 2print htmlspecialchars($str)."<br>"; 3$str = str_replace(['<br>','&nbsp;','&emsp;','&ensp;'],'',$str); 4print htmlspecialchars($str);

投稿2018/10/09 09:34

yambejp

総合スコア114779

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

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

yambejp

2018/10/09 10:06 編集

じつはめんどくさい話。 <br>が小文字限定という条件がない場合<BR><Br><bR>などまで検証する必要があるとき 正規表現が一番楽です。 ただし&nbsp;は&Nbsp;などはヒットしない場合など大文字小文字を場合分けしたいときは ちょっと面倒な処理になります(タグだけ大文字小文字を無視、あとの文字は小文字だけとか)
guest

0

別にご質問文の記述でも恥ずかしくないと思いますが。
これでいかがでしょうか。

PHP

1$table = array( 2 '<br>'=>'', 3 '&nbsp;'=>'', 4 '&emsp;'=>'', 5 '&ensp;'=>'' 6); 7 8$seihinmei = str_replace(array_keys($table), array_values($table), $seihinmei);

投稿2018/10/09 09:37

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問