dalavier
29.04.2013 - 11:52
Здравствуйте. Хотел самостоятельно написать небольшой модуль для сайта, но так как в РНР полный нуб, запутался и вышла чепуха:
$res = $db->query("SELECT id, title, date, short_story, full_story, category FROM " . PREFIX . "_post $cond AND WHERE `short_story`
REGEXP 'youtube' OR `full_story` REGEXP 'youtube' AND approve=1 ORDER BY rand() LIMIT 1");
$row = $db->get_row($res);
function get_code($res) {
$pattern = '#(?<=(?:v|i)=)[a-zA-Z0-9-]+(?=&)|(?<=(?:v|i)\/)[^&\n]+|(?<=embed\/)[^"&\n]+|(?<=??(?:v|i)=)[^&\n]+|(?<=youtu.be\/)[^&\n]+#';
preg_match_all($pattern, $res, $matches);
foreach ($matches as $match) {
$img = "<a class="floatbox" href="http:
break;
}}
Помогите разобраться и поправить код.
Суть такова: скрипт должен выбирать из БД записи с видео из youtube, вытаскивать из всей записи id видео типа oUV6PSv-CZE, потом формировать код, вставки видео ссылкой с анкором в виде картинки из самого видео.
Вроде бы иду по правильному пути, но плохо знаю РНР и поэтому топчусь на месте. Я только учусь, потыкайте носом...
Игорь_Vasinsky
29.04.2013 - 12:02
так ясен пень - какой самописный модуль если 0 в php?
чёб коды видео не хранить отдельно? в контексте они у вас чтоли?
айайай
- он вообще справляется со своей задачей?
и для чё REGEXP нагибать всё? LIKE не достаточно было бы?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
dalavier
29.04.2013 - 12:22
LIKE не срабатывает. Коды видео хранить отдельно сложно, т.к. они вставляются в код статьи при помощи обычного embed. Возможно это важно модуль для DLE.
Ну и... код не работает, поэтому и прошу помощи.
Игорь_Vasinsky
29.04.2013 - 12:24
я уже писал - необходимо удостовериться что выборка возращает результат, т.е. необходимо удастовериться что срабатывает REGEXP и потом - что паттерн - правильно ищет
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
dalavier
29.04.2013 - 12:38
По отдельности выборка SELECT все правильно выбирает, pattern тоже, но в целом код не работает...
Игорь_Vasinsky
29.04.2013 - 12:45
$res = $db->query("SELECT id, title, date, short_story, full_story, category FROM " . PREFIX . "_post $cond AND WHERE `short_story`
REGEXP 'youtube' OR `full_story` REGEXP 'youtube' AND approve=1 ORDER BY rand() LIMIT 1");
$row = $db->get_row($res);
function get_code($res) {
$pattern = '#(?<=(?:v|i)=)[a-zA-Z0-9-]+(?=&)|(?<=(?:v|i)\/)[^&\n]+|(?<=embed\/)[^"&\n]+|(?<=??(?:v|i)=)[^&\n]+|(?<=youtu.be\/)[^&\n]+#';
preg_match_all($pattern, $res, $matches);
echo '<pre>' . print_r($matches, 1) . '</pre>';
что вернул этот код?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
dalavier
29.04.2013 - 12:52
Parse error: syntax error, unexpected $end
DedMorozzz
29.04.2013 - 13:06
скобку от ф-и закрой.
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Игорь_Vasinsky
29.04.2013 - 13:13
$res = $db->query("SELECT id, title, date, short_story, full_story, category FROM " . PREFIX . "_post $cond AND WHERE `short_story`
REGEXP 'youtube' OR `full_story` REGEXP 'youtube' AND approve=1 ORDER BY rand() LIMIT 1");
$row = $db->get_row($res);
function get_code($res) {
$pattern = '#(?<=(?:v|i)=)[a-zA-Z0-9-]+(?=&)|(?<=(?:v|i)\/)[^&\n]+|(?<=embed\/)[^"&\n]+|(?<=??(?:v|i)=)[^&\n]+|(?<=youtu.be\/)[^&\n]+#';
preg_match_all($pattern, $res, $matches);
echo '<pre>' . print_r($matches, 1) . '</pre>';
}
get_code($res);
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
dalavier
29.04.2013 - 14:21
Warning: preg_match_all() expects parameter 2 to be string
так ругается на строку:
preg_match_all($pattern, $res, $matches);
Игорь_Vasinsky
29.04.2013 - 14:25
как же так? вы же писали
Цитата |
По отдельности выборка SELECT все правильно выбирает, pattern тоже, но в целом код не работает... |
у вас бяка в $row = $db->get_row($res);
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.