Pregmatch html 属性与 json 内容
Pregmatch html attribute with a json content
我正在尝试获取html标签属性的内容,但不知何故我无法获取所有内容:
示例 html
// clipped for brevity
<a href="someurl/somemore" data-custom="{"foo": 0, "bar": "string"}">
// some more html
现在我想获取奇怪地使用双引号的 json 对象的所有内容。出于这个原因,我尝试首先获取 data
属性的值,稍后解析 json。
我做了:
preg_match('/< *a[^>]*data-custom *= *["'']?([^"'']*)/i', $re, $matches);
var_dump($matches);
其中$re
是上面显示的 HTML。但我得到这个:
array(2) {
[0]=> string(39) "<a href="someurl/somemore" data-vote="{"
[1]=> string(1) "{"
你觉得怎么样?另外,如果您碰巧知道一种以更快的方式提取 json 值的直接方法,您会怎么做?
可以尝试如下操作:
$html = '<a href="someurl/somemore" data-custom="{"foo": 0, "bar": "string"}" class="btn">Vote</a>';
preg_match('~'{'s*(.*?)'s*'}~', $html, $m);
$json = $m[0];
print $json;
输出:
{"foo": 0, "bar": "string"}
正则表达式演示
这有效,除非您的链接有更多内容...
$str = '<a href="someurl/somemore" data-custom="{"foo": 0, "bar": "string"}">';
preg_match('/< *a[^>]*data-custom=(.*)>/i', $str, $matches);
var_dump($matches);
输出:
array(2) {
[0]=>
string(69) "<a href="someurl/somemore" data-custom="{"foo": 0, "bar": "string"}">"
[1]=>
string(29) ""{"foo": 0, "bar": "string"}""
}
相关文章:
- 呈现通过角度 js 从 API 获取的 json 内容列表
- 在向用户呈现数据之前删除 JSON 内容/删除 JavaScript 对象属性
- Pregmatch html 属性与 json 内容
- 使用json内容对网格进行排序
- EWS-JSON内容中未识别出令牌
- 使用jquery对json内容进行跨域请求时出错
- 在Handlebars.js中获取JSON内容
- 为什么在ajax请求中没有输出json内容
- 再次序列化时,序列化的对象是否包含相同的json内容(跨浏览器情况)
- 如何从外部url访问json内容
- 可折叠的JSON内容
- 带有JSON内容的下拉菜单
- 如何最好地将javascript解析的JSON内容解析为ruby
- Ajax将Json内容从列表页面导航到详细信息页面
- 将json内容绑定到元素的简单方法
- 当通过Javascript输出JSON内容时,我应该在服务器端还是客户端进行HTML转义
- 我如何获得未转义JSON内容的html转义JSON数据
- jquery ajax post与json内容类型返回错误的请求作为HTML
- 按类别排序JSON内容
- 显示JSON内容