eregi..обяснение

GodFather

Registered
Може ли малко обяснение за функцията eregi и да попитам може ли да се направи да търси 2 думи.. например youtube или vbox ... ако няма нито една о тия 2те думи да не добавя нищо ! дано сте ме разбрали ! :) само когато във формата за добавяне има.. vbox или youtube тогава да продължава
 
mne preg е по добре !
тукмо пишех една система такава за добавяне на клипове ето ти add.php
Код:
<?php
include ( "config.php");
if(isset($_POST['submit']))
{
$url = $_POST['URL'];
$title = html_specialchars(trim(stripslashes($_POST['title'])));
$opisanie = html_specialchars(trim(stripslashes($_POST['opisanie'])));
if(empty($title))
{
$msg_error = "Заглавието е твърде малко ";
}
if(empty($opisanie))
{
$msg_error = "Описанието е твърде малко";
}
if(preg_match("/[http:\/\/]?[www\.]?(vbox7.com|zazz.bg)\/play:[a-zA-Z0-9]+$/",$url) )
{
$video = end(explode(":", $url));
$picture = (@getimagesize("http://i47.vbox7.com/p/".$video."3.jpg")) ? "http://i47.vbox7.com/p/".$video."3.jpg" : "http://i47.vbox7.com/p/".$video."4.jpg";
for($i=0;$i<=7;$i++)
{
$k = '0'.$i;
$k = str_replace("00", "",$k);
if($fp = @fopen("http://media".$k.".vbox7.com/s/".substr($video,0,2)."/".$video.".flv", "r"))
{
$send_video = "http://media".$k.".vbox7.com/s/".substr($video,0,2)."/".$video.".flv";
$i = 7;
}
@fclose($fp);
}
}
else if (preg_match("/[http:\/\/]?[www\.]?youtube\.com\/watch\?v[=](.+?)/s", $url))
{
$video = explode("watch?v=", $url);
$video = $video[1];
if(ereg("&", $video))
{
$video = explode("&", $video);
$video = $video[0];
}
$picture = "http://img.youtube.com/vi/".$video."/default.jpg";
if($fp = fopen("http://cache.googlevideo.com/get_video?video_id=".$video, "r"))
{
	$send_video = "http://cache.googlevideo.com/get_video?video_id=".$video;
}
else
{
$msg_error = "Клипа не може да се отвори";
$video = "";
}
}
else
{
$msg_error =  "Не коректен линк";
}
if(empty($msg_error) && !empty($send_video) && !empty($picture))
{
$client_ip = ($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : getenv('REMOTE_ADDR');
$sql = "SELECT COUNT(id) as broi FROM clips WHERE video='$send_video'";
if(!$result = mysql_query($sql))
{
die ( mysql_error());
}
$row = mysql_fetch_array($result);
if($row['broi'] == 0 )
{
$sql = "SELECT MAX(id) as last_id FROM clips";
if(!$result = mysql_query($sql))
{
die ( mysql_error());
}
$row = mysql_fetch_array($result);
$next_id = $row['last_id'] + 1;
if(mysql_query("INSERT INTO clips(`id`,`ip`,`video`, `image`, `title`,`opisanie`) VALUES (
'$next_id', '$client_ip' , '$send_video', '$picture', '$title', '$opisanie');"))
{
echo "Клипа е добавен";
}
}
else
{
$msg_error = 'Този клип е вече добавен';
}
}
}
?>
<form action="" method="POST">
Заглавие<br />
<input type="text" name="title" value="<?php echo $title; ?>"><br />
Линк от zazz.bg(vbox7.com) или от youtube.com
<br /><input type="text" name="URL" value="<?php echo htmlspecialchars($url); ?>"><br />
Описание<br />
<textarea name="opisanie"><?php echo $opisanie; ?></textarea><br />
<input type="submit" name="submit" value="Изпрати">
</form>
<?php echo $msg_error; ?>
ако искаш и таблицата ще ти дам ...
 
hellfire каза:
mne preg е по добре !
ако искаш и таблицата ще ти дам ...
Мерси + 1 :) на мене ми трябваше само това за поне малко защита ... иначе друго всичко си имам пробвай : http://vidbg.com

Ти ли беше писал един скрипт за сваляне на видео от data.bg от youtube и от zazz и vbox ? ако си ти.. може ли да ми го дадеш :) мерси
 
мда ей са ще ти напиша нещо
Код:
<form action="" method="POST">
<input type="text" name="url">
<input type="submit" name="submit" value="Газ">
</form>
<?php
if($_POST['submit'])
{
	$url = preg_replace("#(\?sid=|\#vid)([a-z0-9\#\%\^&*!@]+)#i", "", $_POST['url']);
	$url = preg_replace('#([&]+[\=a-z0-9\$%^&*@\#$]+)#i', '', $url);
	if(preg_match('#(http://|www.|)vid.data.bg/([a-z0-9\-_]+)#i',$url, $video))
	{
		echo '<a href="http://vid.data.bg/play.php/' . end($video) . '/movie.flv">Download</a>';
	}
else if ( preg_match('#(http://|www.|)(vbox7.com|zazz.bg)/play:([a-z0-9\-_]+)#i',$url,$video))
	{

		for($i = 0; $i <= 7; $i++)
		{
			if($i != 0)
			{
				$k = 0 . $i;
			}
			$file = 'http://media'.$k.'.vbox7.com/s/' . substr(end($video),0,2) . '/' . end($video) . '.flv';
			if($fp = @fopen($file, "r"))
			{
				echo '<a href="' . $file . '">Download</a>';
				$i = 7;
			}
			@fclose($fp);
		}
	}
else if ( preg_match('#(http://|www.|)youtube.com/watch\?v=(.+)#i',$url,$video))
	{
		echo '<a href="http://cache.googlevideo.com/get_video?video_id=' . end($video) . '">Download</a>';
	}
else
	{
		echo "Грешен линк моля въведете правилен ... :P";
	}
}?>
 
Мерси много :) пич си.. ааре като напишеш системата дето сега я пишеш постни едно демо да погледна може ли ?
 
GodFather, php.net препоръчват да използваш preg_match() вместо eregi(). Ето ти и примера с preg:
Код:
<?php
$string = "vbox dyra byra";
$string1 = "dyra <a href=#>youtube</a>dyra byra";

if(preg_match("/vbox|youtube/i", $string)) echo "ima tyrsena duma\n";
if(preg_match("/vbox|youtube/i", $string1)) echo "ima tyrsena duma";
?>
Можеш да изредиш колкото си искаш думи за търсене, като просто ги разделяш с знака за ИЛИ - |.
 
PhrozenCrew каза:
GodFather, php.net препоръчват да използваш preg_match() вместо eregi(). Ето ти и примера с preg:
Код:
<?php
$string = "vbox dyra byra";
$string1 = "dyra <a href=#>youtube</a>dyra byra";

if(preg_match("/vbox|youtube/i", $string)) echo "ima tyrsena duma\n";
if(preg_match("/vbox|youtube/i", $string1)) echo "ima tyrsena duma";
?>
Можеш да изредиш колкото си искаш думи за търсене, като просто ги разделяш с знака за ИЛИ - |.
Ок .. така и ще направя .. щом е по добре :)
А би ли ми казал защо е по добре ... питам защото искам да ги знам тия работи :)
 
GodFather каза:
... Ок .. така и ще направя .. щом е по добре :)
А би ли ми казал защо е по добре ... питам защото искам да ги знам тия работи :)
В php.net за функцията eregi() пише, че е идентична с функцията ereg(), като просто е оразана възможността да различава малки и големи букви.
Мдам, тогава да видим какво пишат за родителската функция ereg():
Note: preg_match(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg().
T.e. хората казват, че preg_match() е по-бърза алтернатива от ereg()/eregi(). Като се зачетем по-нвътре срещаме и обяснението, че ereg() използва регулярни изрази, базирани на POSIX - един доста стар стандарт. Докато за preg_match() пишат, че покрива всички липсващи възможности на POSIX, като отгоре на всичкото е и по-бърза алтернатива. Другото предимство е, че повечето съвременни езици използват Perl-Compatible Regular Expression. Разбира се, това има и своите недостатъци. Тъй като разработчиците на PHP от скоро се сетиха да внедрят пълните възможности за лесна обработка на големи пасажи текст с preg, е много вероятно под версии PHP 5.2.0 много от функциите на preg_match() да не работят и тогава ще трябва да се използва ereg()/eregi().
... ухх, че съм многословен. Надявам се да съм дал коректно обяснение.
 

Back
Горе