PHP cURL 字符串获取字符串特定部分前后的所有内容
PHP cURL string get everything before and after certain part of string
我正在使用 cURL 从网页中抓取一些数据。
但是由于数据是基于数组的,但是大小会发生变化。
然后我需要搜索部分字符串并希望在
下一个逗号之前的部分。
{"id":2988001,"teatiseNr":"50000099027","mkood":74,
现在是字符串。
我只想拥有 {"id": 之后的所有内容
直到第一个逗号。
所以我的输出是 2988001
为什么我需要搜索条件是因为有时会有更多的变量,这会打乱顺序。
现在我正在使用简单的
$pieces = explode(",", $page);
然后用
删除剩下的
str_replace('{"id":','',$pieces[0]);
必须有更优雅的方法来完成这项工作。
这是一个 json 字符串,因此您可以简单地执行以下操作:
$data = json_decode($string);
echo $data->id;
如果它是基于数组的,那么 alistaircol、matei 和 neil 是对的,你应该使用类似
的东西
$data = json_decode($page);
$id = $data->id
假设由于某种原因,响应实际上不是 JSON 并且带有 id 的项目的顺序是可变的,那么这样的事情也可以工作
$no_braces = str_ireplace('{','',$page);
$no_quotes = str_ireplace('"','',$no_braces);
$items = explode(",",$no_quotes);
function getID($items){
foreach($items as $item){
$parts = explode($item, ':');
$key = $parts[0];
if($key === 'id'){
return $parts[1];
}
}
return null;
}
我正在使用 cURL 从网页中抓取一些数据。 但是由于数据是基于数组的,但是大小会发生变化。 然后我需要搜索部分字符串并希望在 下一个逗号之前的部分。
{"id":2988001,"teatiseNr":"50000099027","mkood":74,
现在是字符串。 我只想拥有 {"id": 之后的所有内容 直到第一个逗号。 所以我的输出是 2988001
为什么我需要搜索条件是因为有时会有更多的变量,这会打乱顺序。 现在我正在使用简单的
$pieces = explode(",", $page);
然后用
删除剩下的str_replace('{"id":','',$pieces[0]);
必须有更优雅的方法来完成这项工作。
这是一个 json 字符串,因此您可以简单地执行以下操作:
$data = json_decode($string);
echo $data->id;
如果它是基于数组的,那么 alistaircol、matei 和 neil 是对的,你应该使用类似
的东西$data = json_decode($page);
$id = $data->id
假设由于某种原因,响应实际上不是 JSON 并且带有 id 的项目的顺序是可变的,那么这样的事情也可以工作
$no_braces = str_ireplace('{','',$page);
$no_quotes = str_ireplace('"','',$no_braces);
$items = explode(",",$no_quotes);
function getID($items){
foreach($items as $item){
$parts = explode($item, ':');
$key = $parts[0];
if($key === 'id'){
return $parts[1];
}
}
return null;
}