Php 查找包含各种html标记的字符串

Php 查找包含各种html标记的字符串,php,Php,当我试图通过AK-47黑色层压板(工厂新产品)的价格和预匹配进行循环时,我遇到了以下问题:它似乎没有找到它 我使用了以下代码 { "status" : "success", "prices" : [ { "market_hash_name" : "AK-47 | Aquamarine Revenge (Battle-Scarred)", "price" : "9.77", "created_at" : 1463806291 },

当我试图通过AK-47黑色层压板(工厂新产品)的价格和预匹配进行循环时,我遇到了以下问题:它似乎没有找到它

我使用了以下代码

{
  "status" : "success",
  "prices" : [
    {
      "market_hash_name" : "AK-47 | Aquamarine Revenge (Battle-Scarred)",
      "price" : "9.77",
      "created_at" : 1463806291
    },
    {
      "market_hash_name" : "AK-47 | Aquamarine Revenge (Factory New)",
      "price" : "38.51",
      "created_at" : 1463822081
    },
    {
      "market_hash_name" : "AK-47 | Aquamarine Revenge (Field-Tested)",
      "price" : "17.8",
      "created_at" : 1463811694
    },
    {
      "market_hash_name" : "AK-47 | Aquamarine Revenge (Minimal Wear)",
      "price" : "26.0",
      "created_at" : 1463823062
    },
    {
      "market_hash_name" : "AK-47 | Aquamarine Revenge (Well-Worn)",
      "price" : "12.9",
      "created_at" : 1463832713
    },
    {
      "market_hash_name" : "AK-47 | Black Laminate (Battle-Scarred)",
      "price" : "6.36",
      "created_at" : 1463832092
    },
    {
      "market_hash_name" : "AK-47 | Black Laminate (Factory New)",
      "price" : "93.0",
      "created_at" : 1463800517
    },
    ]
}
$data=json\u decode($json,true);
$prices=$data['prices'];
回声';
$item='AK-47 |黑色层压板(工厂新)';
foreach(价格为$items){
foreach($key=>$value的项目){
如果(预匹配(“/”$item./i“,$value)){
回声$key.“
”; 回声$value.“
”; } } } 回声';
你知道我做错了什么吗


如果您有任何帮助,我们将不胜感激。问题在正则表达式模式中,
|
()
是正则表达式字符

你可以用

试一试

反而

if(preg_match("/".$item."/i",$value )){
您还可以尝试将正则表达式更改为:

$item = 'AK-47 \| Black Laminate \(Factory New\)';

使用
preg_quote
函数对正则表达式模式中使用的字符串中的特殊字符进行转义:

$data = json_decode($json,true);
$prices = $data['prices'];

$item = 'AK-47 | Black Laminate (Factory New)';
foreach ($prices as $items ){
    foreach ($items as $key => $value){
        if (preg_match("/". preg_quote($item) ."/i", $value )) {
            echo $key."<br>";
            echo $value."<br>";
        }
    }
}

有没有办法通过编程将这些/添加到变量$item中?@user3280648是使用
preg\u quote
$item = 'AK-47 \| Black Laminate \(Factory New\)';
$data = json_decode($json,true);
$prices = $data['prices'];

$item = 'AK-47 | Black Laminate (Factory New)';
foreach ($prices as $items ){
    foreach ($items as $key => $value){
        if (preg_match("/". preg_quote($item) ."/i", $value )) {
            echo $key."<br>";
            echo $value."<br>";
        }
    }
}
market_hash_name
AK-47 | Black Laminate (Factory New)