vasyakrn

Рейтинг
75
Регистрация
28.09.2012
Должность
продаю пиротехнику Online
Интересы
пиротехника, PHP, HTML, CSS
пиротехник
Что за таймаут 15 минут? Таймаут чего?

У меня по умолчанию таумаут виполнения запроса 30сек, чтоб не нагружать сервер. А етот скрипт виполняєтся не менене пяти минут

Спасибо всем Уже переделал. Помог мне один человек и просил не говорить его имя. Справился со второго раза. Вконце сказал что там возможно не бьили пробели. Вот каким кодом сделал

function updateInfoTwitt( $info, $id ){
if( !$info OR !$id ) return;
mysql_query( "UPDATE `". $this->table ."` SET
`twitter_twitts` = '". preg_replace("#\D#", '', $info['twitts']) ."',
`twitter_following` = '". preg_replace("#\D#", '', $info['following']) ."',
`twitter_followers` = '". preg_replace("#\D#", '', $info['followers']) ."',
`twitter_pic` = '". mysql_real_escape_string($info['link_img_profile']) ."'
WHERE `id` = '". $id ."'
;" ) or die(mysql_error());
}



---------- Добавлено 12.07.2013 в 21:28 ----------

Тему закривайте

Уже сам сделал через num**(). Тему можна закрить

Что в таком коде добавить чтоб удалялись пробели?

function parseTwitts( $page ){
if( !$page ) return;
preg_match( '#data-element-term="tweet_stats" data-nav=\'profile\'>\s{0,200}<strong>(.[^>]+?)</strong>#', $page, $value );
if( !$value ) return;
return trim( $value[1] );
}

Так не роботаєт:


function parseTwitts( $page ){
if( !$page ) return;
preg_match( '#data-element-term="tweet_stats" data-nav=\'profile\'>\s{0,200}<strong>(.[^>]+?)</strong>#', $page, $value );
$string = str_replace( " ", "", $string );
if( !$value ) return;
return trim( $value[1] );
}

К сожелению отблагодарить нечем. Могу только дать инвайт на 2ip.ru(там у вас исчезнет капча и появятся ип-шпион, и др.). А код парсера викласти не могу, Извините

---------- Добавлено 12.07.2013 в 11:17 ----------

Код парсинга

<?php

define( "DOCROOT", dirname(__FILE__) ."/" );

include_once( DOCROOT ."includes/functions.class.php" );
include_once( "includes/dbconfig.php" );


class ParseTwitt{

var $start_url = "https://twitter.com/";
var $auth_url = "https://twitter.com/sessions";
var $table = "dle_post";


function __construct(){
$this->funcs = new Functions;
$this->config = $this->funcs->getConfig( 'general' );
if( !$this->config['username'] OR !$this->config['passwd'] ) {
die( "Заполните данные для авторизации на twitter.com" );
}
if( !intval($this->config['time_auth']) OR (time() - intval($this->config['time_auth'])) > 3600 ){
if( !$this->auth() ){
$this->logs( "Неправильные данные для доступа в твиттер" );
$this->auth_status = FALSE;
}else{
$this->config['time_auth'] = time();
$this->funcs->saveConfig( "general", $this->config );
$this->auth_status = TRUE;
}
}else{
$this->auth_status = TRUE;
}
}


function auth( $redirect_url="/" ){
$page = $this->funcs->url_open( $this->start_url );
if( stripos($page, 'name="session[password]"') === FALSE ) return TRUE;
$post_data = "session[username_or_email]=". rawurlencode($this->config['username']) ."&session[password]=". rawurlencode($this->config['passwd']);
preg_match( '#<input type="hidden" value="(.[^"]+?)" name="authenticity_token"/>#', $page, $auth_token );
$post_data .= "&authenticity_token=". rawurlencode($auth_token[1]) ."&redirect_after_login=". rawurlencode($redirect_url) ."&scribe_log=";
$post_data .= "&remember_me=1";
$page = $this->funcs->url_open( $this->auth_url, array("post_data" => $post_data) );
if( stripos($page, 'name="session[password]"') === FALSE ) return TRUE;
}


function parseTwitts( $page ){
if( !$page ) return;
preg_match( '#data-element-term="tweet_stats" data-nav=\'profile\'>\s{0,200}<strong>(.[^>]+?)</strong>#', $page, $value );
if( !$value ) return;
return trim( $value[1] );
}


function parseFollowing( $page ){
if( !$page ) return;
preg_match( '#data-element-term="following_stats" data-nav=\'following\'>\s{0,200}<strong>(.[^>]+?)</strong>#', $page, $value );
if( !$value ) return;
return trim( $value[1] );
}


function parseFollowers( $page ){
if( !$page ) return;
preg_match( '#data-element-term="follower_stats" data-nav=\'followers\'>\s{0,200}<strong>(.[^>]+?)</strong>#', $page, $value );
if( !$value ) return;
return trim( $value[1] );
}


function parseAvatar( $page ){
if( !$page ) return;
preg_match( '#<a href="(.[^"]+?)" class="profile-picture media-thumbnail"#', $page, $value );
if( !$value ) return;
return $value[1];
}


function getInfo( $page ){
if( !$page ) return;
$info = array();
$info['twitts'] = $this->parseTwitts( $page );
$info['following'] = $this->parseFollowing( $page );
$info['followers'] = $this->parseFollowers( $page );
$info['link_img_profile'] = $this->parseAvatar( $page );
return $info;
}


function getLoginsTwitt(){
$resource = mysql_query( "SELECT `id`, `twitter_login` FROM `". $this->table ."` WHERE `twitter_login` != '';" );
return $resource;
}


function fetchArray( $resource ){
return mysql_fetch_array( $resource );
}


function updateInfoTwitt( $info, $id ){
if( !$info OR !$id ) return;
mysql_query( "UPDATE `". $this->table ."` SET
`twitter_twitts` = '". $info['twitts'] ."',
`twitter_following` = '". $info['following'] ."',
`twitter_followers` = '". $info['followers'] ."',
`twitter_pic` = '". mysql_real_escape_string($info['link_img_profile']) ."'
WHERE `id` = '". $id ."'
;" ) or die(mysql_error());
}


function updater(){
if( !$this->auth_status ) $this->funcs->logs( "Ошибка авторизации" );
$resource = $this->getLoginsTwitt();
while( $row = $this->fetchArray($resource) ){
$twitter_login = $row['twitter_login'];
if( !$twitter_login ) continue;
$page = $this->funcs->url_open( $this->start_url . $twitter_login );
$info = $this->getInfo( $page );
// var_dump( $info, $row );continue;
$this->updateInfoTwitt( $info, $row['id'] );
sleep( 3 );
}
}


}


$p = new ParseTwitt;
$p->updater();

?>

Нашел подобную функцию в парсинге. Как ее включить?

      // удаляет пробелы в строке

function delTwoSpaces( $string ){

$string = trim( $string );

while( TRUE ){

if( strpos($string, " ") === FALSE ) break;

$string = str_replace( " ", "", $string );

}

return $string;

}

там не текст а числа. А нужно так сделать чтоб не возникало багов с сортировкой

Мне нужен ПХП код. Когда я добавляю знаменитость я ети дание не ввожу а потом и парсером делаю. Парсинг парсит сначало в тхт файл а потим все вместе в таблицу.

А каким ПХП кодом можна удалять пробели из чисел автоматичиски

siv1987:
vasyakrn, для особо одаренных которые не могут заглянуть в мануал

Так я из него и узнал. Помогите с кодом парсинга

---------- Добавлено 11.07.2013 в 21:02 ----------

Только теперь вместо 954 321 пишет 954 и так у всех

---------- Добавлено 11.07.2013 в 21:12 ----------

а вместо 1 025 453 пишет 1. Хз в чем проблема

Кажется получаєтся... Потом отпишусь

---------- Добавлено 11.07.2013 в 20:36 ----------

А не могли б ви еще помочь с ПХП кодом. О автоматичиски парсит дание в таблицу

function updateInfoTwitt( $info, $id ){
if( !$info OR !$id ) return;
mysql_query( "UPDATE `". $this->table ."` SET
`twitter_twitts` = '". $info['twitts'] ."',
`twitter_following` = '". $info['following'] ."',
`twitter_followers` = '". $info['followers'] ."',
`twitter_pic` = '". mysql_real_escape_string($info['link_img_profile']) ."'
WHERE `id` = '". $id ."'
;" ) or die(mysql_error());
}

А код роботаєт когда прописивать его так:

ALTER TABLE dle_post CHANGE twitter_twitts twitter_twitts int(10) NOT NULL DEFAULT '0';
Всего: 186