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

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

ただいまの
回答率

87.59%

セェクトタグの後に文字列追加

受付中

回答 5

投稿

  • 評価
  • クリップ 0
  • VIEW 507

score 10

前提・実現したいこと

大量にあるファイルの中の、三項演算子を、PHPのstrtr関数を用いて、プログラムで置換したいと思っています。
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

配列内に文字コードとして、<select name="of">の後に、
<option <?= $of == '1' ? 'selected' : "" ?> value="1">登録逆順表示</option>等を入れたいのですが、
<selectタグとして認識をしてしまい、うまく配列にはいりません、、

エラーメッセージ

該当のソースコード

$replace = array(    
"<select name=\"of\">" => "<select name = \"of\"> <option <?= \$of == \"10\"  ? \"selected\" : \"\" ?> value=\"10\">登録逆順表示</option>"
);

ソースコード


PHP

試したこと

ここに問題に対して試したことを記載してください。
色々とエスケープ文字\を使ってみましたが、文字コードとして認識しなくて、select文と認識してしまいます、、

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。
strtr関数でなくとも、htmlのファイル内で、
<select name = "of">
の後ろに、<option <?= $of == '1' ? 'selected' : "" ?> value="1">登録逆順表示</option>
を追加する方法があれば、お教え頂きたく、宜しくお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m.ts10806

    2019/02/21 11:42

    miyabi_takatsukさん
    質問見づらいので仕方がないですね。
    エンジニアにとって英数字全角は非常に読みづらいです。
    (何に対して何をしたいのかも読み取りづらい)

    キャンセル

  • m.ts10806

    2019/02/21 12:56

    質問者さん
    ついた回答がほぼ全て違う方向性なのをお気づきですか?
    つまりそれだけ内容が伝わってないということです。それだけ多くの他人の時間が無駄になっていることになります。
    せっかくの質問テンプレートですし、きちんと精査してください。
    このままだとあなたが得たい回答はずっと得られません。

    キャンセル

  • westmountain

    2019/02/24 22:52

    質問がまずくて、、皆様にお手数をおかけし申し訳ありませんでした、
    真摯なご意見を頂き、感謝しています。
    今回、配列内に、<select,,>を文字列として入れることはやめて、別の手段で解決しました、、
    また、今回質問を投稿したところに、情報を追記しました。
    今後とも宜しくお願いします。

    キャンセル

回答 5

0

PHPコマンドを含むソースを自分自身のコマンドで置換しようとしているのでしょうか?
ちょっと認識に無理がある内容のように見えます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

$moji1="&lt;select name=\"of\"&gt;";
のように、\文字ではなく、
<は&lt; >は&gt; に代替すれば、可能になりそうです、、これで試してみます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/02/21 11:29 編集

    回答に書かないでください。回答にはコメントがつけられます。
    回答は削除依頼が出せます。
    また、質問も回答も編集できます。
    スルーせずご対応願います。

    キャンセル

0

"と'の使い分けをすると、わざわざエスケープする必要がなくなったりします。
PHPも含めただいたいの言語では、
'この中では、"は文字列として扱うことができる'←逆もしかり
といった使い方ができます。
(swiftなどは、別の意味や仕様になるので、同様の使い方ができなかったりします)
ただし、PHPは、""の中でないと、¥エスケープがうまく動かないなど、"と'で仕様が若干異なります。

以上を踏まえ、下記でいかがでしょうか。
(何がやりたいか、いまいちよくわからないので、そこはエスパーします)

<?php

echo '<select name="of"><select name="of"><option value="10"' 
 . ($of == 10 ? ' selected="selected"' : '') . '>登録逆順表示</option>';

?>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

大目的が分かりませんが「ソースコードの置換」なら
IDE(Eclipseなど)の置換機能を利用してください。

正規表現やファイル名のパターンも使えます。
イメージ説明

もちろん、全て一気に置換するのではなく、
きちんと1つ1つプレビューで確認してください。
イメージ説明
イメージ説明

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

PHPのスクリプトからPHPコードを出力しても、そのコードはPHPでは処理されないので、出力する時点でHTMLになるようにする必要があります。

$replace = array(
    '<select name="of">' =>
    '<select name="of"> <option '. ($of == "10" ? "selected" : "") .' value="10">登録逆順表示</option>'
);

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 87.59%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る