[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выбрать существующию переменную
qaz333
Собственно такой вопрос,

$site_b = file_get_contents("http://сайт.ру");


preg_match("/http\:\/\/vip-file.com(.*?)html/",$site_b, $vip_file);
preg_match("/http\:\/\/filestore.com.ua\/\?d=[0-9a-zA-Z]{1,50}/",$site_b, $filestore_com_ua);
preg_match("/http\:\/\/letitbit.net(.*?)html/",$site_b, $letitbit);
preg_match("/http\:\/\/depositfiles.com\/files\/[0-9a-zA-Z]{1,50}/" ,$site_b, $depositfiles);
preg_match("/http\:\/\/fileshare.in.ua\/[0-9]{1,50}/",$site_b, $fileshare_in_ua);



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



Спустя 3 минуты, 12 секунд (14.09.2011 - 14:12) Winston написал(а):
Что-то не совсем понятно, то есть нужно взять
$vip_filem $depositfiles... и т.д. и выбрать из них не пустую ?

Спустя 1 минута, 24 секунды (14.09.2011 - 14:13) qaz333 написал(а):
да и выбрать из них одну не пустую

Спустя 2 минуты, 47 секунд (14.09.2011 - 14:16) caballero написал(а):
ну так сунь это в фукцию На каждой проверке условие если не пустая тогда return.
Код должен прежде всего работать. компилятору и как правило заказчику пофиг красивый код или нет.

Напиши чтобы работало а потом занимайся оптимизацией. Или не занимайся - золотое правило "не трогай пока работает".
А умение писать грамотно придет с опытом не надо ставить это впереди телеги.

Спустя 25 минут, 40 секунд (14.09.2011 - 14:42) qaz333 написал(а):
я вот придумал сделать так


preg_match("/http\:\/\/vip-file.com(.*?)html/",$site_b, $vip_file);
preg_match("/http\:\/\/filestore.com.ua\/\?d=[0-9a-zA-Z]{1,50}/",$site_b, $filestore_com_ua);
preg_match("/http\:\/\/letitbit.net(.*?)html/",$site_b, $letitbit);
preg_match("/http\:\/\/depositfiles.com\/files\/[0-9a-zA-Z]{1,50}/" ,$site_b, $depositfiles);
preg_match("/http\:\/\/fileshare.in.ua\/[0-9]{1,50}/",$site_b, $fileshare_in_ua);



$array = array("$vip_file[0]", "$filestore_com_ua[0]", "$letitbit[0]", "$depositfiles[0]", "$fileshare_in_ua[0]");




foreach($array as $val)
{

if($val !== "")
{
$ok = $val;
}

}

print_r($ok);


Всё, так работает, если у кого естькакие либо замечания, прошу))

Спустя 24 минуты, 53 секунды (14.09.2011 - 15:07) vital написал(а):
только одно.
Лучше юзать empty() вместо ==""

И кстати - двойные кавычки - зло. Юзать стоит одинарные.
Двойные жрут больше времени. Незачем юзать их просто так.

Спустя 1 час, 53 минуты, 46 секунд (14.09.2011 - 17:01) inpost написал(а):
qaz333
для оформления пхп кодов используй [ php], а не [ code]

Спустя 21 минута, 45 секунд (14.09.2011 - 17:22) qaz333 написал(а):
Цитата (vital @ 14.09.2011 - 12:07)
только одно.
Лучше юзать empty() вместо ==""

И кстати - двойные кавычки - зло. Юзать стоит одинарные.
Двойные жрут больше времени. Незачем юзать их просто так.

хм... а вот кстати насчот ковичек, если ставить одинарные то то што между ними разпознаётся как текст, тоесть если ты напишешь $rrr то так оно и останится, а если двойние то запишется значение переменной

Спустя 1 час, 2 минуты, 15 секунд (14.09.2011 - 18:25) ZSH написал(а):
Цитата
хм... а вот кстати насчот ковичек, если ставить одинарные то то што между ними разпознаётся как текст, тоесть если ты напишешь $rrr то так оно и останится, а если двойние то запишется значение переменной

если здесь:
$array = array("$vip_file[0]", "$filestore_com_ua[0]", "$letitbit[0]", "$depositfiles[0]", "$fileshare_in_ua[0]");

то они совсем не нужны.

Спустя 7 минут, 10 секунд (14.09.2011 - 18:32) neadekvat написал(а):
Цитата (vital @ 14.09.2011 - 16:07)
Двойные жрут больше времени.

Жрут прямо. Так сказано, как будто там в стопиццот раз скрипт становится медленнее, падает сервер и извергаются вулканы.

Но придерживаться использования именно одинарных кавычек (там, где это возможно), конечно же, стоит.

Спустя 6 минут, 20 секунд (14.09.2011 - 18:38) walerus написал(а):
<?php 

function
parseUrl( $content = '')
{
if ( trim($content) == '')
return trim($content);

preg_match( "/http\:\/\/vip-file.com(.*?)html/", $content, $vip_file );
if ( isset($vip_file[0]) && trim( $vip_file[0] ) != '' )
return trim( $vip_file[0] );

preg_match( "/http\:\/\/filestore.com.ua\/\?d=[0-9a-zA-Z]{1,50}/", $content, $filestore_com_ua );
if ( isset($filestore_com_ua[0]) && trim( $filestore_com_ua[0] ) != '' )
return trim( $filestore_com_ua[0] );

preg_match( "/http\:\/\/letitbit.net(.*?)html/", $content, $letitbit );
if ( isset($letitbit[0]) && trim( $letitbit[0] ) != '' )
return trim( $letitbit[0] );

preg_match( "/http\:\/\/depositfiles.com\/files\/[0-9a-zA-Z]{1,50}/", $content, $depositfiles );
if ( isset($depositfiles[0]) && trim( $depositfiles[0] ) != '' )
return trim( $depositfiles[0] );

preg_match( "/http\:\/\/fileshare.in.ua\/[0-9]{1,50}/", $content, $fileshare_in_ua );
if ( isset($fileshare_in_ua[0]) && trim( $fileshare_in_ua[0] ) != '' )
return trim( $fileshare_in_ua[0] );

return 'Not respone Content!';
}

// Запрос
$ready_url = file_get_contents( "http://сайт.ру" );
$content = parseUrl( $ready_url );
print_r( $content );

?>

Спустя 8 минут, 57 секунд (14.09.2011 - 18:47) neadekvat написал(а):
walerus, символы начала и конца строки точно не забыл?

Спустя 22 минуты, 50 секунд (14.09.2011 - 19:10) walerus написал(а):
Цитата (neadekvat @ 14.09.2011 - 15:47)
walerus, символы начала и конца строки точно не забыл?

В смысле ? rolleyes.gif , где именно, вроде там нет начала конца )

Спустя 3 минуты, 9 секунд (14.09.2011 - 19:13) Winston написал(а):
"/^http\:\/\/vip-file.com(.*?)html$/"

Но, что-то мне кажется, что там нужно вот так
"/http\:\/\/vip-file.com(.*?)html/s"

Хотя не уверен :unsure:
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.