ФорумПрограммированиеPHP для идиотов → Пытаюсь парсить в базе

Пытаюсь парсить в базе

  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 5 января 2010 г. 22:53


    $first_char = substr(trim(WWW_DOMAIN),0,1);
    $mysql->setQuery("SELECT * FROM dle_post WHERE CONCAT(short_story,full_story) REGEXP '<img src=\"http://(www\\.)*[^$first_char][^\"]*\"[^>]*>' LIMIT 100");
    $res = $mysql->execute();
    $row = mysqli_fetch_assoc($res);


    в базе есть урлы на фото http://s47.radikal.ru/i116/1001/e5/5378e9707388.jpg, скрипт должен парсить их, во второй строке ошибка я предполагаю, но вот где не могу сообразить где, в лог записывает:

    05-01-2010 14:46:53 SELECT * FROM dle_post WHERE CONCAT(short_story,full_story) REGEXP '<img src="http://(www\.)*[^i][^"]*"[^>]*>' LIMIT 100

    соображения?
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 5 января 2010 г. 23:19, спустя 26 минут 4 секунды

    зачем это?
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 5 января 2010 г. 23:22, спустя 2 минуты 26 секунд

    чтобы не зависить от фотоархивов.
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 5 января 2010 г. 23:25, спустя 3 минуты 13 секунд

    а если при записи в базу указывать сразу только имя файла и копировать его на хост?
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 5 января 2010 г. 23:26, спустя 1 минуту 21 секунду

    база уже есть, она весит больше 1гб, на будущее.
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 5 января 2010 г. 23:38, спустя 11 минут 51 секунду

    зачем тогда лимит 100?

    да и ошибку отпиши, может у тебя mysql падает под нагрузкой.
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 7 января 2010 г. 2:44, спустя 1 день 3 часа 5 минут

    пока тестирую хотел установить лимит. установил на сервере mysqli и всё прошло, но проблемма в том что скрипт не совсем мне подходит.

    у меня теперь другой вопрос, какой регуляркой можно достать урлы картинок из базы больше 1 гб и записать их в файл или в отдельную таблицу?
    насколько я понимаю скорость выполнения скрипта будет очень долгой, что либо положит сервер либо попросту оборвет коннект, предполагаю что нужно делать паузы?
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 7 января 2010 г. 11:20, спустя 8 часов 36 минут 13 секунд

    пара решений есть всегда, тут можно использовать либо
    * Stored procedure (хранимые процедуры в мускле)
    * View (сделать вьюшку, которая будет вытягивать только нужные данные)

    Первый вариант рациональнее и быстрее, реализовывается средствами mysql без использования посторонних средств. Делаешь процедуру, в ней работает с каждой строкой, только регулярку надо делать по-уму, т.к. может быть такой тег у картинки "<img style='border:0' src='my.jpg'" и твоя регулярка пролетит. Мне не совсем понятно как ты собираешься ее запустить и что означает $first_char = substr(trim(WWW_DOMAIN),0,1); да и в первом посте эта переменная так и не передалась в запрос.
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 7 января 2010 г. 12:55, спустя 1 час 35 минут 9 секунд


    пара решений есть всегда, тут можно использовать либо
    * Stored procedure (хранимые процедуры в мускле)
    * View (сделать вьюшку, которая будет вытягивать только нужные данные)

    Первый вариант рациональнее и быстрее, реализовывается средствами mysql без использования посторонних средств. Делаешь процедуру, в ней работает с каждой строкой, только регулярку надо делать по-уму, т.к. может быть такой тег у картинки "<img style='border:0' src='my.jpg'" и твоя регулярка пролетит. Мне не совсем понятно как ты собираешься ее запустить и что означает $first_char = substr(trim(WWW_DOMAIN),0,1); да и в первом посте эта переменная так и не передалась в запрос.


    фото в базе вида:
    <!–TBegin–><a href="http://site.ru/uploads/posts/2009-09/1253950268_gwn103047.jpg" onclick="return hs.expand(this)" ><img src="http://site.ru/uploads/posts/2009-09/thumbs/1253950268_gwn103047.jpg" alt='название' title='название'  /></a><!–TEnd–>

    есть и без ссылки, они отображаются так:
    <img src="http://site.ru/uploads/posts/2010-01/1262723365_ukwvvy9r8dnil7n.jpeg" alt='название' title='название' />
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 8 января 2010 г. 14:22, спустя 1 день 1 час 26 минут

    <!–ThumbBegin–><a href="#" onClick="ShowBild('http://site.ru/uploads/posts/1200597553_hristos_voskres.jpg'); return false;" ><img src="http://site.ru/uploads/posts/thumbs/1200597553_hristos_voskres.jpg" style="border: none;" alt='название &quot;название&quot;' /></a><!–ThumbEnd–></div><br />название<div align="center"><!–ThumbBegin–>


    Ещё есть такие урлы в базе.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!