データの配列で$ ampを使用するPHPstr_replaceの奇妙な動作

スティーブアイブス

'&'を '&amp'に、 '#'を '%23'に置き換えたいURLが2つあるので、次を使用します。

list($upUrl, $downUrl) = str_replace(["&", "#"], ["&amp", "%23"], [$upUrl, $downUrl]);

ただし、「&amp」の置換は行われません。「&」は変更されません。araysなしでstr_replaceを使用すると、正常に機能します。

$upUrl = str_replace("&", "&amp", $upUrl);

'&amp'を別の文字列に変更すると、問題なく動作します。この問題を示すコードスニペットは次のとおりです。

<?php
define("NL", "\n<br>");

$upUrl = "upUrl ampersand=& hash=#";
$downUrl = "downUrl ampersand=& hash=#";

echo $upUrl.NL;
echo $downUrl.NL.NL;

list($upUrl, $downUrl) = str_replace(["&", "#"], ["&amp", "%23"], [$upUrl, $downUrl]);

echo $upUrl.NL;
echo $downUrl.NL.NL;

$upUrl = str_replace("&", "&amp", $upUrl);

echo $upUrl.NL;
echo $downUrl.NL;

?>

'&'を '\'でエスケープしても違いはありません。

質問:私は何か間違ったことをしているのですか、それともこれは単なるPHPの癖ですか?

ブラックベリー

このコードをブラウザーで実行すると、置換が行われていないよう見えますが、実際には、ブラウザーのように&amp;(そして「障害のある」ものでさえ&amp)表示さ&れているだけです。コードは意図したとおりに機能します。

upUrl ampersand=& hash=#
<br>downUrl ampersand=& hash=#
<br>
<br>upUrl ampersand=&amp hash=%23
<br>downUrl ampersand=&amp hash=%23
<br>
<br>upUrl ampersand=&ampamp hash=%23
<br>downUrl ampersand=&amp hash=%23
<br>

https://3v4l.org/6sPSR

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

最初のインスタンスで異なるPHPstr_replace

分類Dev

URLに追加するためのPHPstr_replace()

分類Dev

文字列データの派手な配列を初期化する奇妙な動作

分類Dev

配列を使用したPHPstr_replaceタグ

分類Dev

一致しない文字列内のテキストを置き換えるPHPstr_replace

分類Dev

phpstr_replaceレターをhtmlに

分類Dev

javascriptで配列を作成するときの奇妙な動作

分類Dev

javascriptからの入力のPHPstr_replace

分類Dev

forループで配列を変更するときの奇妙な動作

分類Dev

forループで配列を変更するときの奇妙な動作

分類Dev

MongoDBの配列データで配列を検索する

分類Dev

JSONの配列でデータ配列を取得する

分類Dev

値を交換するために.replace()を使用するパンダの奇妙な動作

分類Dev

JavaScriptで++を使用するときの奇妙な動作

分類Dev

Cで文字列配列の要素を出力するときの奇妙な動作

分類Dev

char *を使用するときのCの奇妙な動作

分類Dev

gfortranでの暗黙のdoを使用した配列コンストラクターの奇妙な初期化動作

分類Dev

論理配列を変更するときの奇妙な動作

分類Dev

構造体の配列を初期化する奇妙な動作

分類Dev

Java 3項演算子を使用するときの奇妙な動作

分類Dev

mallocを使用するときの奇妙な動作

分類Dev

文字をchar配列にコピーすると、奇妙な動作が発生するのはなぜですか

分類Dev

デニッシュチャーのphpstr_replace

分類Dev

配列の配列ではなく単一の配列でデータをフェッチする方法

分類Dev

親スコープから角度のあるカスタムディレクティブで配列を取得すると、奇妙な動作をする空の配列になります

分類Dev

配列データの分割

分類Dev

JavaScriptで配列をループしているときの奇妙な動作

分類Dev

Excelのデータ検証で配列を使用する

分類Dev

パンダデータフレームを使用している間の列挙の奇妙な動作

Related 関連記事

  1. 1

    最初のインスタンスで異なるPHPstr_replace

  2. 2

    URLに追加するためのPHPstr_replace()

  3. 3

    文字列データの派手な配列を初期化する奇妙な動作

  4. 4

    配列を使用したPHPstr_replaceタグ

  5. 5

    一致しない文字列内のテキストを置き換えるPHPstr_replace

  6. 6

    phpstr_replaceレターをhtmlに

  7. 7

    javascriptで配列を作成するときの奇妙な動作

  8. 8

    javascriptからの入力のPHPstr_replace

  9. 9

    forループで配列を変更するときの奇妙な動作

  10. 10

    forループで配列を変更するときの奇妙な動作

  11. 11

    MongoDBの配列データで配列を検索する

  12. 12

    JSONの配列でデータ配列を取得する

  13. 13

    値を交換するために.replace()を使用するパンダの奇妙な動作

  14. 14

    JavaScriptで++を使用するときの奇妙な動作

  15. 15

    Cで文字列配列の要素を出力するときの奇妙な動作

  16. 16

    char *を使用するときのCの奇妙な動作

  17. 17

    gfortranでの暗黙のdoを使用した配列コンストラクターの奇妙な初期化動作

  18. 18

    論理配列を変更するときの奇妙な動作

  19. 19

    構造体の配列を初期化する奇妙な動作

  20. 20

    Java 3項演算子を使用するときの奇妙な動作

  21. 21

    mallocを使用するときの奇妙な動作

  22. 22

    文字をchar配列にコピーすると、奇妙な動作が発生するのはなぜですか

  23. 23

    デニッシュチャーのphpstr_replace

  24. 24

    配列の配列ではなく単一の配列でデータをフェッチする方法

  25. 25

    親スコープから角度のあるカスタムディレクティブで配列を取得すると、奇妙な動作をする空の配列になります

  26. 26

    配列データの分割

  27. 27

    JavaScriptで配列をループしているときの奇妙な動作

  28. 28

    Excelのデータ検証で配列を使用する

  29. 29

    パンダデータフレームを使用している間の列挙の奇妙な動作

ホットタグ

アーカイブ