allmuz: Всем здрасьте, помогите с регуляркой, не могу получить отсюда (vk.com/audio?) имя трека и ссылку на файл (ссылка на файл есть в исходнике). Не могу понять суть регулярных выражений. 😒
В данном отдельно взятом случае можно поступить следующим образом:
При запросе к vk.com/audio Вы в ответ получите Json данные со всяким мусором. Поэтому:
Пробовал различные готовые решения (VBoxCtrl, Vboxvmservice и пр.). Такой вариант не устроил потому что (почему - не знаю) при работе службы которая контролирует работу ВМ, невозможно запустить GUI VB, выдает непонятную ошибку.
Так все таки быть может кто знает как выполнить скрипт еще до того как начнется убийство всех процессов в системе ?
Актуально......
Сначала научитесь показывать конфиг без комментариев и пустых строк
Ок босс.
быть может еще что-нибудь посоветуете ? Какой то он чутка глючный этот плеер
В Вашем же варианте только 2 колонки.
И что же? Остается только расширять скрипт? Как то не по душе, кажется что есть более элегантное решение...
попробуйте так:
Не пойдет, я привел простой пример, а на самом в моей задаче таких параметров с десяток, представляете как разрастется вся конструкция?)
Всем спасибо, что откликнулись. Буду разбираться в регулярках, и с json познакомлюсь заодно)))
DavyJohnes, вот как Вы сказали сделал,
но получил в ответ
Что, где я упустил, не могу понять.
А если
то
array(1) { [0]=> string(114520) "{ adupd: 120000, al: parseInt('2') || 4, id: 6285718, intnat: '' ? true : false, host: 'vk.com', lang: 0, rtl: parseInt('') || 0, version: 10962, stDomains: 3, zero: false, contlen: 101594, loginscheme: 'https', ip_h: '6ebbf89a816301dcc4', vc_h: 'a0a796f7397a740c701750b6bb27ab10', navPrefix: '/', dt: parseInt('') || 0, fs: parseInt('11') || 11, ts: 1351581534, pd: 0, pads: 1, time: [2012, 10, 30, 11, 18, 54] } window.locDomain = vk.host.match(/[a-zA-Z]+\.[a-zA-Z]+\.?$/)[0]; var _ua = navigator.userAgent.toLowerCase(); if (/opera/i.test(_ua) || !/msie 6/i.test(_ua) || document.domain != locDomain) document.domain = locDomain; var ___htest = (location.toString().match(/#(.*)/) || {})[1] || ''; if (vk.al != 1 && ___htest.length && ___htest.substr(0, 1) == vk.navPrefix) { if (vk.al != 3 || vk.navPrefix != '!') { location.replace(location.protocol + '//' + location.host + '/' + ___htest.replace(/^(\/|!)/, '')); } } var StaticFiles = { 'common.js' : {v: 960}, 'common.css': {v: 375}, 'ie6.css' : {v: 26}, 'ie7.css' : {v: 18} ,'lang0_0.js':{v:6358},'audio.css':{v:76},'audioplayer.css':{v:8},'ui_controls.css':{v:32},'notifier.css':{v:64} }ну и ниже сама страница спарсеная отображается.
У Вас запрос неправильный выполняется. Нужно делать POST запрос к vk.com/audio со следующими параметрами:
и json_decode($parse) заменить на json_decode($parse[1])
Всем здрасьте, помогите с регуляркой, не могу получить отсюда (vk.com/audio?) имя трека и ссылку на файл (ссылка на файл есть в исходнике). Не могу понять суть регулярных выражений. 😒
В данном отдельно взятом случае можно поступить следующим образом:
При запросе к vk.com/audio Вы в ответ получите Json данные со всяким мусором. Поэтому:
Шаг 1.
preg_match('#\{.*\}#is',<переменная_с_ответом_от_сервера>,$data)Теперь в $data будут содержаться чистые json данные.
Шаг 2.
Теперь в $a_data находиться обычный массив и с титлами и с ссылками. Сделайте его var_dump и все поймете.
P.S.: Для изучения регулярных выражений, очень хорошо подойдет это.
Переделать батник на службу
Пробовал различные готовые решения (VBoxCtrl, Vboxvmservice и пр.). Такой вариант не устроил потому что (почему - не знаю) при работе службы которая контролирует работу ВМ, невозможно запустить GUI VB, выдает непонятную ошибку.
Так все таки быть может кто знает как выполнить скрипт еще до того как начнется убийство всех процессов в системе ?
как вариант вместо типа MyISAM использовать таблицы типа InnoDB (они поддерживают транзакции и подобных проблем быть не должно)
И так все таблицы созданы как InnoDB, но о транзакциях никогда не задумывался....погуглю, спасибо.