php preg_match从字符串中查找困难的JSON

php preg_match从字符串中查找困难的JSON,php,regex,preg-match,Php,Regex,Preg Match,原文是: ;\n}\nvar vars = {\"uid\":\"170785079\",\"vid\":171461352,\"oid\":170785079,\"host\":509202,\"vtag\":\"493bf2f9dd\",\"ltag\":\"l_8f6ca452\",\"vkid\":171461352,\"md_title\":\"6dfdbda80019208839183a713f243a41\",\"md_author\":\"Ayxan Əmira

原文是:

;\n}\nvar vars = {\"uid\":\"170785079\",\"vid\":171461352,\"oid\":170785079,\"host\":509202,\"vtag\":\"493bf2f9dd\",\"ltag\":\"l_8f6ca452\",\"vkid\":171461352,\"md_title\":\"6dfdbda80019208839183a713f243a41\",\"md_author\":\"Ayxan Əmiraslanl\",\"author_id\":170785079,\"author_href\":\"\\\/mr.ayxan\",\"hd\":3,\"no_flv\":1,\"hd_def\":-1,\"dbg_on\":0,\"t\":\"\",\"duration\":244,\"angle\":0.000000,\"img_angle\":0.000000,\"repeat\":0,\"show_ads_preroll\":0,\"show_ads_postroll\":0,\"show_ads_promo_preroll\":0,\"show_ads_overlay\":0,\"ads_type\":-1,\"legal_owner\":0,\"eid1\":0,\"slot\":0,\"g\":1,\"a\":18,\"puid34\":0,\"water_mark\":\"\",\"can_rotate\":1,\"hash\":\"19e3bc2d2ae2f2ce34f6fbaefcf93e2d\",\"hash2\":\"246f9680b9b4f835\",\"is_vk\":\"1\",\"is_ext\":\"0\",\"referrer\":\"\",\"c3\":\"\",\"sample_id\":-1,\"cat_id\":13,\"sitezone\":17,\"ads_preview\":0,\"puid4\":0,\"puid5\":14,\"puid6\":86,\"pl_type\":\"other\",\"nolikes\":1,\"lang_add\":\"Add to My Videos\",\"lang_added\":\"Video added to My Videos\",\"lang_share\":\"Share\",\"lang_like\":\"Like\",\"lang_subscribe\":\"Subscribe\",\"lang_subscribed\":\"You have subscribed\",\"lang_volume_on\":\"Unmute\",\"lang_volume_off\":\"Mute\",\"lang_volume\":\"Volume\",\"lang_hdsd\":\"Change Video Quality\",\"lang_quality_auto\":\"Auto\",\"lang_open_popup\":\"Expand\",\"lang_fullscreen\":\"Full Screen\",\"lang_window\":\"Minimize\",\"lang_rotate\":\"Rotate\",\"lang_ads_link\":\"Advertiser's Site\",\"lang_ads\":\"Ads\",\"lang_ads_skip\":\"Skip ad\",\"lang_ads_skip_time\":\"Skip ads in {time} s\",\"lang_report_problem\":\"Report a problem..\",\"lang_replay\":\"Replay\",\"lang_next_cancel\":\"Cancel\",\"video_play_hd\":\"Watch in HD\",\"video_stop_loading\":\"Stop Download\",\"video_player_version\":\"VK Video Player\",\"goto_orig_video\":\"Go to Video\",\"video_get_video_code\":\"Copy video code\",\"video_load_error\":\"The video has not uploaded yet or the server is not available\",\"video_get_current_url\":\"Copy frame link\",\"lang_next\":\"Next video\",\"url240\":\"https:\\\/\\\/cs509202.vk.me\\\/8\\\/u170785079\\\/videos\\\/493bf2f9dd.240.mp4?extra=SatA0TNoxI3a5jCGpYqhL9FIoS9kjnfIqvkVswFVnFDqJToNiAidxUb2ELSSrSEBNGEvU9Fiseuq5uEQSS_-afULYhnmxc6_vvsCA0mWSYbxDux-HA\",\"url360\":\"https:\\\/\\\/cs509202.vk.me\\\/8\\\/u170785079\\\/videos\\\/493bf2f9dd.360.mp4?extra=SatA0TNoxI3a5jCGpYqhL9FIoS9kjnfIqvkVswFVnFDqJToNiAidxUb2ELSSrSEBNGEvU9Fiseuq5uEQSS_-afULYhnmxc6_vvsCA0mWSYbxDux-HA\",\"url480\":\"https:\\\/\\\/cs509209.vk.me\\\/8\\\/u170785079\\\/videos\\\/493bf2f9dd.480.mp4?extra=SatA0TNoxI3a5jCGpYqhL9FIoS9kjnfIqvkVswFVnFDqJToNiAidxUb2ELSSrSEBNGEvU9Fiseuq5uEQSS_-afULYhnmxc6_vvsCA0mWSYbxDux-HA\",\"url720\":\"https:\\\/\\\/cs509209.vk.me\\\/8\\\/u170785079\\\/videos\\\/493bf2f9dd.720.mp4?extra=SatA0TNoxI3a5jCGpYqhL9FIoS9kjnfIqvkVswFVnFDqJToNiAidxUb2ELSSrSEBNGEvU9Fiseuq5uEQSS_-afULYhnmxc6_vvsCA0mWSYbxDux-HA\",\"jpg\":\"https:\\\/\\\/pp.vk.me\\\/c633320\\\/v633320079\\\/10dcc\\\/GDFulD47LS8.jpg\",\"timeline_thumbs\":1,\"timeline_thumbs_jpg\":\"https:\\\/\\\/pp.vk.me\\\/c628028\\\/v628028079\\\/363df\\\/FVHRrSkD6HM.jpg,https:\\\/\\\/pp.vk.me\\\/c633322\\\/v633322079\\\/f06a\\\/CjskgJb-xxU.jpg\",\"timeline_thumbs_per_row\":10,\"timeline_thumbs_per_image\":100,\"timeline_thumbs_total\":122,\"timeline_thumb_width\":133.000000,\"timeline_thumb_height\":75,\"ip_subm\":1,\"proxy\":\"psv4\",\"https\":1,\"viewer_id\":170785079,\"nologo\":1,\"show_next\":0,\"show_suggestions\":0,\"liked\":0,\"add_hash\":\"0685c16b426a731323\",\"added\":0,\"can_add\":0,\"no_title\":0,\"vsegs_size\":24.000000,\"vsegs_hash\":\"1433edfd589e9d072b\",\"module\":\"direct\",\"playlist_id\":null};\n\nif (!var
如何获取变量变量之间的字符串\n\n如果(!var

我尝试了以下代码:

preg_match('/var vars = (.*?);\n\nif (!var/mis', $get, $result)

使用积极的前瞻和惰性量词(根据您的评论进行修改):



请参阅。这是可行的,但速度非常慢且容易出错。是否有其他方法可以获取有问题的代码?

只需使用lookback和lookahead:

preg_match_all('/(?<=var\svars).*(?=\\n\\nif \(!var)/', $get, $matches);
var_dump($matches[0][0]);

preg_match_all('/(?以下是一种无需使用lookarounds即可获取内容的简单方法:

preg_match('~var vars = (\{.*?\};)~m', $get, $json_matches);
$json_match = $json_matches[1];
print $json_match;
我几乎只是将所有数据从一个大括号匹配到另一个大括号

下面是一个工作演示:


返回的empy数组:`array([0]=>array()[1]=>array())`这是var变量和\n\nif之间的json(!varcan你能检查一下吗?全文是这样的。在php上,你的代码works@DilaraAliyeva:查看我的更新答案,代码有效。如果你正在寻找
jsonp_decode
函数,你可以找到一个。全文在这里:kl1p.com/ewxo你能看看这个链接吗?全文在这里:kl1p.com/ewxo它是不同的文本-它没有包含有问题的字符串!
preg_match('~var vars = (\{.*?\};)~m', $get, $json_matches);
$json_match = $json_matches[1];
print $json_match;