PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (37): В начало « ... 5 6 7 8 [9] 10 11 12 13 ... » В конец

> Найдено сообщений: 542
event Отправлено: 23 Января, 2015 - 14:48:49 • Тема: Работа cURL • Форум: Вопросы новичков

Ответов: 4
Просмотров: 257
Ch_chov, делаю как раз многопоточность... надо сформировать массив $urls

не подскажите? - http://forum.php.su/topic.php?fo...mp;v=#1422016689
event Отправлено: 23 Января, 2015 - 14:36:43 • Тема: Запрос, массив • Форум: Вопросы новичков

Ответов: 9
Просмотров: 292
Всем привет.
Есть такой запрос:
CODE (SQL):
скопировать код в буфер обмена
  1. $result = $mysqli->query("SELECT * FROM links WHERE used = 'no' LIMIT 5") OR sqlerr(__FILE__, __LINE__, $mysqli->error);


Как можно все с ячейки link (из таблицы links, та что в запросе) загнать в массив, чтобы получилось

$urls = array("1 ссылка", "2 ссылка)...; и т.д.
(Добавление)
Попробовал как-то так, по дурацкому, но не пашет:

PHP:
скопировать код в буфер обмена
  1. $result = $mysqli->query("SELECT * FROM links WHERE used = 'no' LIMIT 2") or sqlerr(__FILE__, __LINE__, $mysqli->error);
  2.  
  3. while($row = $result->fetch_array()) {
  4.         $url_z .= '"link' . $row['link'] . '", ';
  5. }
  6.  
  7. $urls = array($url_z);
event Отправлено: 23 Января, 2015 - 13:26:25 • Тема: Работа cURL • Форум: Вопросы новичков

Ответов: 4
Просмотров: 257
Ch_chov, о втором слышал, а вот о 1 и 3 ничего, можно поподробнее?
(Добавление)
Разделить парсер и загрузчик - то есть, сперва скачать все html страницы к себе, а потом уже с ними работать?
event Отправлено: 23 Января, 2015 - 03:06:25 • Тема: Работа cURL • Форум: Вопросы новичков

Ответов: 4
Просмотров: 257
Ситуация такая, написал парсер, работает, нужно спарсит ним более миллиона статей, скрипт работает через curl, но медленно, примерно 1 сек/одная спарсеная статья.

Есть идеи как ускорить этот curl?

Скрипт парсера:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.  
  4. function get_row_count($table, $suffix = "") {
  5.         global $mysqli;
  6. if ($suffix)
  7.         $suffix = " $suffix";
  8.         ($r = $mysqli->query("SELECT COUNT(*) FROM $table$suffix"));
  9.         ($a = $r->fetch_row());
  10.                 return $a[0];
  11. }
  12.  
  13. function sqlesc($value) {
  14.         global $mysqli;
  15.    if (!is_numeric($value)) {
  16.            $value = "'" . $mysqli->real_escape_string($value) . "'";
  17.    }
  18.    return $value;
  19. }
  20.  
  21. function sqlerr($file = "", $line = "", $error = "") {
  22.                 global $USER;
  23.                
  24.         die("<b>MySQL Error:</b><br /><b>File:</b> ". $file ." <b>Line:</b> ". $line ."<br /><b>Error:</b> ". $error);
  25. }
  26.  
  27. $mysql = array(
  28.         "host" => "localhost",
  29.         "user" => "root",
  30.         "password" => "123456",
  31.         "database" => "site",
  32.         "charset" => "utf8"
  33. );
  34.  
  35. $mysqli = @ new mysqli($mysql['host'], $mysql['user'], $mysql['password'], $mysql['database']);
  36.  
  37. @ $mysqli->query("SET NAMES " . $mysql['charset']);
  38.        
  39.         die("MySQLi connect error: " . mysqli_connect_error());
  40. }
  41.  
  42. function curl($url = ""){
  43.  
  44. $cl = curl_init();
  45. curl_setopt($cl, CURLOPT_URL, $url);
  46.  
  47. curl_setopt($cl, CURLOPT_RETURNTRANSFER,1);
  48.  
  49. curl_setopt($cl, CURLOPT_HEADER,1);
  50. curl_setopt($cl, CURLOPT_TIMEOUT, 5);
  51.  
  52. curl_setopt($cl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0");
  53.  
  54. $ex = curl_exec($cl);
  55.  
  56.  
  57. return $ex;
  58.  
  59. }
  60.  
  61. $result = $mysqli->query("SELECT * FROM links WHERE used = 'no'") or sqlerr(__FILE__, __LINE__, $mysqli->error);
  62. $row = $result->fetch_array();
  63.  
  64. $site = curl("...url..." . $row['link']);
  65.  
  66. preg_match('#<h1>(.+?)</h1>#i', $site, $name);
  67.  
  68. $name = strip_tags($name[1]);
  69.  
  70. $name =iconv("WINDOWS-1251","UTF-8", $name);
  71.  
  72. preg_match("#</noindex>\s+</td></tr></table>(.*?)</center><hr>#si", $site, $tmp);
  73.      
  74. $result = preg_replace('#<noindex.*?</noindex>|<script.*?</script>|<ins.*?</ins>|<!--.*?-->#si', '', $tmp[1]);
  75.      
  76. $text = trim($result);
  77. $text = str_replace("<p>&nbsp;</p>", "", $text);
  78. $text = str_replace("<p>&nbsp;</p>", "", $text);
  79. $text = str_replace("<br>", "", $text);
  80. $text = str_replace("<center>", "", $text);
  81.  
  82. $text = iconv("WINDOWS-1251","UTF-8", $text);
  83.  
  84. preg_match_all('#<img.*src="(.*)".*>#isU', $text, $urls);
  85.  
  86. foreach($urls[1] as $val) {
  87.         $urls_end .= $val . "\n";
  88. }
  89.  
  90. $result = $mysqli->query("INSERT INTO texts (name, text, image_urls, categoryid, link) VALUES (" . implode(", ", array_map("sqlesc", array($name, trim($text), trim($urls_end), $row['categoryid'], $row['link']))) . ")") or sqlerr(__FILE__, __LINE__, $mysqli->error);
  91.  
  92. $mysqli->query("UPDATE links SET used = 'yes' WHERE id = " . $row['id']) or sqlerr(__FILE__, __LINE__, $mysqli->error);
  93.  
  94. $a = get_row_count("links");
  95. $b = get_row_count("texts");
  96.  
  97. $number1 = $a;
  98. $number2 = $b;
  99. $result = ($number2 / $number1) * 100;
  100.  
  101. echo "Обработано: " . $b . " / " . $a . " (" . round($result) . "%).";
  102.  
  103. ?>
  104.  
  105. <meta http-equiv="refresh" content="0;URL=2.php" />
event Отправлено: 22 Января, 2015 - 18:56:53 • Тема: Замена img/scr • Форум: Вопросы новичков

Ответов: 4
Просмотров: 580
Вопрос том что изображения всегда в тексте, а текст всегда разный. Вот и нужно по тексту менять все чужие ссылки scr на свои и вопрос как это сделать.
event Отправлено: 22 Января, 2015 - 15:10:58 • Тема: Замена img/scr • Форум: Вопросы новичков

Ответов: 4
Просмотров: 580
Не эти все картинки в текстах, и там нужно делать замену, я так понимаю через preg_place но у меня не очень получается.
event Отправлено: 22 Января, 2015 - 14:57:12 • Тема: Замена img/scr • Форум: Вопросы новичков

Ответов: 4
Просмотров: 580
Привет.

Есть такой HTML-код:
CODE (html):
скопировать код в буфер обмена
  1.  
  2.  <p>Все остальные дворы и комнаты служили для размещения под­собных служб (пекарни, склады, конюшни и пр.) (рис. 8.19).</p>
  3.  
  4.  <p><img src="http://ok-t.ru/studopedia/baza1/1365104899715.files/image055.jpg" /></p>
  5.  
  6.  <p><img src="http://ok-t.ru/studopedia/baza1/1365104899715.files/image066.jpg" /></p>
  7.  
  8.  
  9.  <p><img src="http://ok-t.ru/studopedia/baza1/1365104899715.files/image061.jpg" /></p>
  10.  
  11.  


Как можно сделать цикл чтобы тот заменил все ссылки на scr, например на /images/тут назва картинки (например - image055.jpg) ?
event Отправлено: 22 Января, 2015 - 14:18:26 • Тема: Обрезка текста • Форум: Вопросы новичков

Ответов: 5
Просмотров: 250
PHP:
скопировать код в буфер обмена
  1. $text = 'http://ok-t.ru/studopedia/baza1/1365104899715.files/image055.jpg';
  2. echo substr($image, 0, strrpos($image, '/' ));


Вот так оно обрезает конец, а мне нужно чтобы как раз название картинки (в конце) осталось, а все что сначала нафик.
event Отправлено: 22 Января, 2015 - 14:03:55 • Тема: Обрезка текста • Форум: Вопросы новичков

Ответов: 5
Просмотров: 250
Привет.
Обрезаю текс:
PHP:
скопировать код в буфер обмена
  1. $text = 'http://ok-t.ru/studopedia/baza1/1365104899715.files/image055.jpg';
  2. echo substr($image, 0, strpos($image, '/' )); // должно вывести image055.jpg , а выводит http:


должно вывести image055.jpg , а выводит http:, то есть оно делает обрезку сначала строки, а как сделать чтобы обрезало с конца?

Спасибо.
event Отправлено: 22 Января, 2015 - 12:49:20 • Тема: Помогите с регуляркой • Форум: Вопросы новичков

Ответов: 3
Просмотров: 186
GoDr, клиент для парсировки подганяет))

Пасиб. Подмигивание
event Отправлено: 21 Января, 2015 - 22:55:20 • Тема: Помогите с регуляркой • Форум: Вопросы новичков

Ответов: 3
Просмотров: 186
Мучусь уже два часа, никак не получается. Не понял

Что ни у кого нет идей?
event Отправлено: 21 Января, 2015 - 17:17:04 • Тема: Помогите с регуляркой • Форум: Вопросы новичков

Ответов: 3
Просмотров: 186
Привет.
Ребят, помогите составить регулярку чтобы парсила статью с сайта - _http://studopedia.net/1_13473_tema--sredstva-obrabotki-videosignala.html

Пробую как-то так, но не работает...:

PHP:
скопировать код в буфер обмена
  1. $site = file_get_contents("http://studopedia.net/1_13473_tema--sredstva-obrabotki-videosignala.html");
  2.  
  3. preg_match('#</td></tr></table><p>(.+?)<p>#i', $site, $text);
  4.  
  5. var_dump($text);


Заранее спасибо.
event Отправлено: 18 Января, 2015 - 11:23:26 • Тема: Регулярка • Форум: Вопросы новичков

Ответов: 8
Просмотров: 293
GoDr, спасибо! Подмигивание
event Отправлено: 18 Января, 2015 - 02:15:29 • Тема: Регулярка • Форум: Вопросы новичков

Ответов: 8
Просмотров: 293
Кто шарит нормально в регулярках, уделите минутку. Закатив глазки
event Отправлено: 17 Января, 2015 - 17:32:56 • Тема: Регулярка • Форум: Вопросы новичков

Ответов: 8
Просмотров: 293
Помогите пожалуйста, а то капец как нужно. Огорчение

Страниц (37): В начало « ... 5 6 7 8 [9] 10 11 12 13 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB