Проблем с функция за заглавие на клип от VBOX7

cr0uch3rr

Registered
Здравейте,имам проблем със функцията незнайно защо,но просто не иска да изкара заглавие на клип от VBOX. Излиза ми: Видео споделяне,а не заглавието.
PHP:
function v_title($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.vbox7.com/login/in.do');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'vboxusr=USERNAME&vboxpwd=PASSWORD&Submit=login');
curl_setopt ($ch, CURLOPT_COOKIEJAR, '/tmp/vbox_cookie.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
$store = curl_exec ($ch);
curl_setopt($ch, CURLOPT_URL, $url);
$content = curl_exec ($ch);
curl_close($ch);
$title = explode("<title>", $content);
$title = explode("</title>", $title[1]);
$title = str_replace(" / VBOX7","",$title[0]);
$title = iconv('utf-8','utf-8',urldecode($title));
return $title;
}

НА USERNAME и PASSWORD съм сложил мое потребителско име и парола!
 
Може би ти трябва нещо подобно. Не съм го тествал, но горе долу по логика, мисля, че работи.
PHP:
function loginVbox() 
{
	$ch = curl_init();
	$options = array(
		CURLOPT_URL => 'http://www.vbox7.com/login/in.do',
		CURLOPT_POST => 1,
		CURLOPT_POSTFIELDS => 'vboxusr=USERNAME&vboxpwd=PASSWORD&Submit=login',
		CURLOPT_COOKIEJAR => '/tmp/vbox_cookie.txt',
		CURLOPT_RETURNTRANSFER => 1,
		CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5'
	);
	curl_setopt_array($ch, $options);
	return $ch;
}

function vboxTitle($url)
{
	$ch = loginVbox();
	$store = curl_exec ($ch);	
	$options = array(
		CURLOPT_URL => $url, 
		CURLOPT_CONNECTTIMEOUT => null, 
		CURLOPT_RETURNTRANSFER => true,
		CURLOPT_SSL_VERIFYPEER => false,
		CURLOPT_SSL_VERIFYHOST => false
	);
	curl_setopt_array($ch, $options);
	$content = curl_exec ($ch);
	curl_close($ch);
	preg_match('/\<title\>(.*?)\<\/title\>/iu',$content,$title);
	return $title[1];
}
 
Не,не стана. Сложих потребителско име и парола ,но разликата е ,че заглавието е:
Видео споделяне / VBOX7 .. преди беше Видео споделяне.
 
cr0uch3rr каза:
Uphero,на мен не ми трябва заглавие от уеб сайт :)
Виж пак какво кода който си споделили и какво взема той.
Инак виж това:
http://simplehtmldom.sourceforge.net/

PHP:
function vb_title($url) {
	$html = file_get_html($url);
	return $html->find('h1#play-video-title', 0)->plaintext;
}
не съм го тествал.
 
Ех..., http://www.vbox7.com/login/in.do с този линк какво очакваш да излезе ?

На мястото на това постави линк към клип. Клипа, ако изисква логин, то по-надолу си задал да използва бисквитките, които са му нужни, за това би трябвало да няма проблем.
 
Revelation,направих и това обаче сега даже не излиза и някакъв текст на заглавие ... ,а що до въпроса за линка чрез него функцията взима заглавието само когато си логнат иначе не може ..

Друг начин намерих със функцията,но незнайно защо не работи

PHP:
function v_title($url){
	$string = file_get_contents_utf8("http://vbox7.com/etc/oembed/?url=http//vbox7.com/play:".$url."");
	$onee_info = explode('<title>',$string);
	$title = explode('</title>',$onee_info[1]);

	return $title[0];
}

Принципа е : http://vbox7.com/etc/oembed/?url=http//vbox7.com/play:тук кода

$url при мен взима крайните числа и букви на линка !!
 
Без да тествам, ще говоря наизуст.

В първата функция, която си дал пробвай следното.

1. Под CURLOPT_USERAGENT използвай само curl_exec($ch) без да присвояваш на променлива(няма смисъл).
2. Затвори тази инстанция и отдолу отвори нова.
3. Използвай опциите RETURNTRANSFER = 1, COOKIEFILE =ФАЙЛА_ЗАДАДЕН_НА_COOKIEJAR и URL с линка ,който искаш да отвориш.
4. Нататък си оставяш така, само използвай друго име на променливата за инициализирането на curl, за да не стават обърквания.

Ако не се получи, ще видя утре да тествам лично.
 
Хайде, заповядай.

PHP:
<?php
header('Content-Type: text/html; charset=utf-8');

function v_title($url){
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
	$store = curl_exec ($ch);
	
	preg_match_all('/og:title.*content="(.*)"/', $store, $title);
	
	curl_close($ch);
	
	return $title[1][0];
}

echo v_title('http://vbox7.com/play:6406b74537&pos=vr');
 
Revelation каза:
Хайде, заповядай.

PHP:
<?php
header('Content-Type: text/html; charset=utf-8');

function v_title($url){
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
	$store = curl_exec ($ch);
	
	preg_match_all('/og:title.*content="(.*)"/', $store, $title);
	
	curl_close($ch);
	
	return $title[1][0];
}

echo v_title('http://vbox7.com/play:6406b74537&pos=vr');

То проблемът в моят код е бил само регулярният израз. Малко ще подобря твоя код, защото вероятно би могло да се наложи да има въведени определените опции.

PHP:
function vboxTitle($url)
{      
    $ch = curl_init();
	$options = array(
        CURLOPT_URL => $url, 
        CURLOPT_CONNECTTIMEOUT => null, 
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_SSL_VERIFYHOST => false
    );
    curl_setopt_array($ch, $options);
    $content = curl_exec($ch);
    curl_close($ch);
	preg_match_all('/og:title.*content="(.*)"/', $content, $title);
    return $title[1][0];
}

echo vboxTitle('http://vbox7.com/play:6406b74537');
 

Back
Горе