[英]Find string with all sorts of html tags PHP
{
"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
},
]
}
當我試圖循環通過價格和preg_match為AK-47 |時,我有以下問題 黑色層壓板(嶄新出廠)它似乎找不到它
我使用了以下代碼
$data = json_decode($json,true);
$prices = $data['prices'];
echo '<pre>';
$item = 'AK-47 | Black Laminate (Factory New)';
foreach($prices as $items ){
foreach($items as $key=>$value){
if(preg_match("/".$item."/i",$value )){
echo $key."<br>";
echo $value."<br>";
}
}
}
echo '</pre>';
關於我做錯了什么的任何想法
任何幫助,將不勝感激
使用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>";
}
}
}
輸出:
market_hash_name
AK-47 | Black Laminate (Factory New)
問題出在RegEx模式中, |
和()
是正則表達式。
你可以使用preg_quote
嘗試
if (preg_match("/". preg_quote($item) ."/i", $value )) {
代替
if(preg_match("/".$item."/i",$value )){
您也可以嘗試將正則表達式更改為:
$item = 'AK-47 \| Black Laminate \(Factory New\)';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.