gpt4 book ai didi

php - 奇怪的Javascript结构

转载 作者:行者123 更新时间:2023-12-03 07:17:59 25 4
gpt4 key购买 nike

我正在尝试通过解析从网站获取信息,并且我发现了这段JavaScript代码:

var product = {
identifier: '198980',
valid: '1378159199',
fn: 'Entrada para IMAX Barcelona, para cualquier sesión y día',
description: '',
category : [ 'Barcelona','Planes del día','Actividades'],
brand: '',
price: '5.00',
amount: '9.75',
currency: 'EUR',
url: 'http://es.letsbonus.com/ocio/barcelona/entrada-a-imax-port-vell-2013-08-02-198980',
photo: 'http://media5.letsbonus.com/products/198000/198980/13509238959102-0-680x276.jpg'
};

如您所见,此javascript代码包含网站上某个产品的很多信息,因此对其进行解析将很有趣。我可以看到这不是JSON对象,也不是Javascript数组。

我的问题是:

这是某种类型的Javascript对象吗?而且,如果是这样,在PHP中是否有任何简单的处理方法?我已经能够在我的代码中检索此特定字符串。

最佳答案

Is this a certain type of Javascript Object?



正如其他人已经评论过的那样,它是 JavaScript object literal MDN

And, if so, is there any easy handling of it in PHP? I'm already able to retrieve this certain string in my code.



是的,有一些简单的处理方法。您所拥有的字符串非常接近JSON,采用UTF-8编码,没有特别的转义或深度嵌套。

因此,您可以运行一些 regular expression based search and replaces Docs,然后只运行 json_decode Docs,如果返回 NULL,则会发现错误,否则,您肯定会得到以下结果:
$buffer = <<<BUFFER
var product = {
identifier: '198980',
valid: '1378159199',
fn: 'Entrada para IMAX Barcelona, para cualquier sesión y día',
description: '',
category : [ 'Barcelona','Planes del día','Actividades'],
brand: '',
price: '5.00',
amount: '9.75',
currency: 'EUR',
url: 'http://es.letsbonus.com/ocio/barcelona/entrada-a-imax-port-vell-2013-08-02-198980',
photo: 'http://media5.letsbonus.com/products/198000/198980/13509238959102-0-680x276.jpg'
};
BUFFER;

print_r(
json_decode(
preg_replace(
[
'/^\R?var product = ({.*});\R?$/s',
'/\'([^\']*+)\'/',
'/^( {4})([a-z]+)\s*:/m',
],
['$1', '"$1"', '$1"$2":'], $buffer
)
)
);

输出( Demo):
stdClass Object
(
[identifier] => 198980
[valid] => 1378159199
[fn] => Entrada para IMAX Barcelona, para cualquier sesión y día
[description] =>
[category] => Array
(
[0] => Barcelona
[1] => Planes del día
[2] => Actividades
)

[brand] =>
[price] => 5.00
[amount] => 9.75
[currency] => EUR
[url] => http://es.letsbonus.com/ocio/barcelona/entrada-a-imax-port-vell-2013-08-02-198980
[photo] => http://media5.letsbonus.com/products/198000/198980/13509238959102-0-680x276.jpg
)

关于php - 奇怪的Javascript结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18341908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com