Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Помогите с условием в php файле

#1 kovalenko3331

kovalenko3331
  • Пользователь
  • 1 сообщений
  • Репутация: 0
0

Отправлено 02 Июнь 2012 - 13:16

Здравствуйте, я только начинаю потихоньку познавать азы php. и пока что делаю все так сказать методом тыка и подбора и в большинстве случаев что то да получается но тут видимо такой вариант не пройдет и нужны знания. Вообщем суть вопроса:
вот кусок кода:
  function build_vidvk($url) {
	 $decode_url = $url;
		$get = explode( "?", $url );
		$get = strtolower( end( $get ) );
  $url = '/engine/video.php?'.$get;
  global $config;
  if (!count($this->video_config)) {
   include (ENGINE_DIR . '/data/videoconfig.php');
   $this->video_config = $video_config;
  }
  $get_size = array();
  $sizes = array();
  $get_size = explode( ",", trim( $url ) );
  if (count($get_size) > 1 AND ( stripos ( $get_size[0], "http" ) === false OR stripos ( $get_size[0], "rtmp:" ) === false ) )  {
   $sizes = explode( "x", trim( $get_size[0] ) );
   $width = $this->video_config['width'];
   $height = $this->video_config['height'];

  } else {
   $width = $this->video_config['width'];
   $height = $this->video_config['height'];
  }

  if (count($get_size) == 3)  $url = $get_size[1].",".$get_size[2];
  elseif (count($get_size) == 2 AND count($sizes) == 2) $url = $get_size[1];
  
  $thumb = $thumb['1'];
  
		$url = $config['http_home_url'].'engine/video.php?var='.base64_encode($get);
		  
  if ( count($sizes) == 2 ) $decode_url = $width."x".$height.",".$decode_url;
$video_url = $url;
$url = array ();
$url = implode( ", ", $url );
$id_player = md5( microtime() );
return "<!--dle_vidvk_begin:{$decode_url}-->
<object id=\"videoplayer-{$id_player}\" type=\"application/x-shockwave-flash\"
data=\"" . $config['http_home_url'] . "engine/classes/flashplayer/uppod.swf\" width=".$width." height=".$height.">
<param name=\"allowFullScreen\" value=\"true\" />
<param name=\"allowScriptAccess\" value=\"always\" />
<param name=\"wmode\" value=\"transparent\" />
<param name=\"movie\" value=\"" . $config['http_home_url'] . "engine/classes/flashplayer/uppod.swf\" />
<param name=\"flashvars\" value=\"comment="."&amp;st=" . $config['http_home_url'] . "engine/classes/flashplayer/skin.txt&amp;file={$video_url}\" />
</object><!--dle_vidvk_end-->";
  
}
он передает закодированное видео через ретранслятор в плеер uppod, в новость ставлю вот таким образом [vidvk=ссылка на видео] и все работает.

но когда делаю через плейлист, вот код:
  function build_vidvk($url) {
		$decode_playlist=$url;
		$get = explode( "?", $url );
		$get = strtolower( end( $get ) );
  $url = '/engine/video.php?'.$get;
  global $config;
  if (!count($this->video_config)) {
   include (ENGINE_DIR . '/data/videoconfig.php');
   $this->video_config = $video_config;
  }
  $get_size = array();
  $sizes = array();
  $get_size = explode( ",", trim( $url ) );
  if (count($get_size) > 1 AND ( stripos ( $get_size[0], "http" ) === false OR stripos ( $get_size[0], "rtmp:" ) === false ) )  {
   $sizes = explode( "x", trim( $get_size[0] ) );
   $width = $this->video_config['width'];
   $height = $this->video_config['height'];

  } else {
   $width = $this->video_config['width'];
   $height = $this->video_config['height'];
  }

  if (count($get_size) == 3)  $url = $get_size[1].",".$get_size[2];
  elseif (count($get_size) == 2 AND count($sizes) == 2) $url = $get_size[1];
  
  $thumb = $thumb['1'];
  
		$url = $config['http_home_url'].'engine/video.php?var='.base64_encode($get);
		  
  if ( count($sizes) == 2 ) $decode_url = $width."x".$height.",".$decode_url;
	  
		$playlist = explode("||", $url);
		foreach ($playlist as $value){
		$playl=explode("|", $value);
		$playlisting[]="{'file':'".$playl[0]."','comment':'".$playl[1]."'}";
		}
		$playlisting = implode(",", $playlisting);
		$playlisting = "{'playlist':[".$playlisting."]}";

$url = array ();
$url = implode( ", ", $url );
$id_player = md5( microtime() );
return "<!--dle_vidvk_begin:{$decode_playlist}-->
<object id="videoplayer-{$id_player}" type="application/x-shockwave-flash"
data="" . $config['http_home_url'] . "engine/classes/flashplayer/uppod.swf" width=".$width." height=".$height.">
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="wmode" value="transparent" />
<param name="movie" value="" . $config['http_home_url'] . "engine/classes/flashplayer/uppod.swf" />
<param name="flashvars" value="comment="."&amp;st=" . $config['http_home_url'] . "engine/classes/flashplayer/skin.txt&amp;pl=".$playlisting."" />
</object><!--dle_vidvk_end-->";
и вставляю в новость вот так [vidvk=ссылка на видео|Видео №1||ссылка на видео|Видео №2] то в результате получается что воспроизводит только второй файл, и в исходном коде плеера вижу что
<!--dle_vidvk_begin:ссылка на видео|Видео №1||ссылка на видео|Видео №2-->
<object id="videoplayer-3bf430bbdcaa5b4d04de00bf5198a413" type="application/x-shockwave-flash"
data="http://www.sait.ru/engine/classes/flashplayer/uppod.swf" width=720 height=410>
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="wmode" value="transparent" />
<param name="movie" value="http://www.sait.ru/engine/classes/flashplayer/uppod.swf" />
<param name="flashvars" value="comment=&amp;st=http://www.sait.ru/engine/classes/flashplayer/skin.txt&amp;pl={'playlist':[{'file':'http://www.sait.ru/engine/video.php?var=b2lkPTE2OTU3Nzc0NyZpZD0xNjMwODg4MTkmaGFzaD1lNjBhY2NlYmY1Yzc3MjA1JmhkPTF8wsjExc4guTE=','comment':''}]}" />
</object><!--dle_vidvk_end-->
как бы весь плейлист воспринимается как одна ссылка. Перебрал куча вариантов но все безрезультатно.
Уважаемые знатоки php языка программирования, подскажите пожалуйста как указать условие чтобы плейлист обрабатывался верно? Как на приведенном ниже примере, только видео там запускается напрямую без ретранслятора, и все воспроизводится нормально
function build_video($url) {
  global $config;
  if (!count($this->video_config)) {
   include (ENGINE_DIR . '/data/videoconfig.php');
   $this->video_config = $video_config;
  }
  $get_size = array();
  $sizes = array();
  $get_size = explode( ",", trim( $url ) );
  if (count($get_size) > 1 AND ( stripos ( $get_size[0], "http" ) === false OR stripos ( $get_size[0], "rtmp:" ) === false ) )  {
   $sizes = explode( "x", trim( $get_size[0] ) );
   if (count($sizes) == 2) {
	$width = intval($sizes[0]) > 0 ? intval($sizes[0]) : $this->video_config['width'];
	$height = intval($sizes[1]) > 0 ? intval($sizes[1]) : $this->video_config['height'];
	if (substr ( $sizes[0], - 1, 1 ) == '%') $width = $width."%";
	if (substr ( $sizes[1], - 1, 1 ) == '%') $height = $height."%";
   } else {
	$width = $this->video_config['width'];
	$height = $this->video_config['height'];

   }
  } else {
   $width = $this->video_config['width'];
   $height = $this->video_config['height'];
  }

		$decode_playlist=$url;
$playlist = explode("||", $url);
foreach ($playlist as $value){
  $playl=explode("|", $value);
  $playlisting[]="{'file':'".$playl[0]."','comment':'".$playl[1]."'}";
}
$playlisting = implode(",", $playlisting);
$playlisting = "{'playlist':[".$playlisting."]}";
  if (count($get_size) == 3)  $url = $get_size[1].",".$get_size[2];
  elseif (count($get_size) == 2 AND count($sizes) == 2) $url = $get_size[1];
  $option = explode( "|", trim( $url ) );

  $url = $this->clear_url( $option[0] );
  $type = explode( ".", $url );
  $type = strtolower( end( $type ) );

  if( preg_match( "/[?&;<\[\]]/", $url ) ) {
  
   return "[video=" . $url . "]";

  }

  if( $option[1] != "" ) {
  
   $option[1] = htmlspecialchars( strip_tags( stripslashes( $option[1] ) ), ENT_QUOTES );
   $decode_url = $url . "|" . $option[1];

  } else
   $decode_url = $url;

  if ( count($sizes) == 2 ) $decode_url = $width."x".$height.",".$decode_url;
  if ( stripos ( $url, "rtmp:" ) === false ) $detect_rtmp = false; else $detect_rtmp = true;

  if( $type == "flv" or $type == "mp4" or $type == "m4v" or $type == "m4a" or $type == "mov" or $type == "3gp" or $type == "f4v" or $detect_rtmp) {
  
   $url = array ();
$url = implode( ", ", $url );
$id_player = md5( microtime() );
return "<!--dle_video_begin:{$decode_playlist}-->
<object id=\"videoplayer-{$id_player}\" type=\"application/x-shockwave-flash\"
data=\"" . $config['http_home_url'] . "engine/classes/flashplayer/uppod.swf\" width=".$width." height=".$height.">
<param name=\"allowFullScreen\" value=\"true\" />
<param name=\"allowScriptAccess\" value=\"always\" />
<param name=\"wmode\" value=\"transparent\" />
<param name=\"movie\" value=\"" . $config['http_home_url'] . "engine/classes/flashplayer/uppod.swf\" />
<param name=\"flashvars\" value=\"comment="."&amp;st=" . $config['http_home_url'] . "engine/classes/flashplayer/skin.txt&amp;pl=".$playlisting."\" />
</object><!--dle_video_end-->";
и вставляю в новость [video=ссылка на видео|Видео №1||ссылка на видео|Видео №2] видео нрмально воспроизводится плейлистом и выглядит исходный код так
<!--dle_video_begin:ссылка на видео|Видео №1||ссылка на видео|Видео №2-->
<object id="videoplayer-3bf430bbdcaa5b4d04de00bf5198a413" type="application/x-shockwave-flash"
data="http://www.sait.ru/engine/classes/flashplayer/uppod.swf" width=720 height=410>
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="wmode" value="transparent" />
<param name="movie" value="http://www.sait.ru/engine/classes/flashplayer/uppod.swf" />
<param name="flashvars" value="comment=&amp;st=http://www.sait.ru/engine/classes/flashplayer/skin.txt&amp;pl={'playlist':[{'file':'ссылка на видео','comment':'Видео №1'},{'file':'ссылка на видео','comment':'Видео №1'}]}" />
</object><!--dle_video_end-->

 

 

  • 0


Оформление форума – IPBSkins.ru