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