• Brauchen wir eine Programmierer Ecke?

    $einUrl = eine von den URLs oben
    $path_parts = pathinfo($eineUrl);
    $vid = $path_parts['filename'];

    // ohne PHP 5.3
    if(preg_match("/v=/", $vid)){
    $teil = substr(strstr($vid, "v="), 2);
    $pos = stripos($teil, "&");
    $vid = substr($teil, 0, $pos);
    }

    // mit PHP 5.3
    if(preg_match("/v=/", $vid)){
    $teil = substr(strstr($vid, "v="), 2);
    $vid = strstr($teil, "&", TRUE);
    }

    echo $vid."
    \n";

    Sie dürfen nicht alles glauben was sie denken!

    (Heinz Ehrhardt)

  • Brauchen wir eine Programmierer Ecke?

    Zitat von "Rudolf Ratlos" post=3309

    Ginge mit PHP 5.3 noch einfacher:
    $vid = substr(strstr($teil2, "&", TRUE), 2);


    einfacher = weniger CodeZeilen?


    Zitat


    // mit PHP 1.0 (oder C ohne ++)
    if( $vidstr=strstr(str_rplace('?','&',$einUrl),'&v='){
    $vid = strtok(substr($vidstr, 3),'&');
    }


    ist jetzt ungetestet ... aber "1" Zeile kürzer

    naja, ist ja das was ich schon hatte

    Code
    $uT = str_replace('?','&',$uT);
    
    
    if ( $tok=strstr($uT,'&v=') )
    {
      $uTid = strtok(substr($tok, 3),'&');
    }


    kürzer die 1.

    Code
    if ( $tok=strstr( str_replace('?','&',$uT), '&v=') )
    {
      $uTid = strtok(substr($tok, 3),'&');
    }

    und die Klammerung anders wie ich es mag

    Code
    if ( $tok=strstr( str_replace('?','&',$uT), '&v=') ) {
      $uTid = strtok(substr($tok, 3),'&');
    }


    oder gleich als 1Zeiler?

    Code
    if ( $uTid = strtok(substr( strstr( str_replace('?','&',$uT) ,'&v=') , 3),'&') )
    {} else
    {


    bzw

    Code
    if ( $uTid = strtok(substr( strstr( str_replace('?','&',$uT) ,'&v=') , 3),'&') ) ;
    else {
  • Videos einbinden

    nur mal Anmerken möchte

    Zitat von "Rudolf Ratlos" post=3309
    Code
    if(preg_match("/v=/", $teil1)){
            $teil2 = substr(strstr($teil1, "v="), 2);


    Wenn Die sich einen Parameter einfallen lassen, der auf "v" endet
    und dieser Parameter vor dem "&v=" ind er URL ist

    (z.B. ein "div=true" ... irgendwie was mit DivConteiner ja nein ... oder ....)

    dann wird doch das falsche "extrahiert"


    //EDIT

    &av=1234&v=6789

    av = AdvertiseVideo .... die kommen ja auch im View vor dem "Hauptfilm"

  • Videos einbinden

    Zitat


    Rudolf Ratlos schrieb:
    Ginge mit PHP 5.3 noch einfacher:
    $vid = substr(strstr($teil2, "&", TRUE), 2);


    war falsch sollte so:

    $vid = strstr($teil, "&", TRUE);

    Sie dürfen nicht alles glauben was sie denken!

    (Heinz Ehrhardt)

  • Videos einbinden

    So, Peilung aufgenommen und wohl fertig - jetzt darf die Community testen.
    Danke für die Hilfe hier im Thread! Ich bin ja etwas stur, deswegen hab ich doch mein eigenes Ding durchgezogen und weiter mit regex rumgespielt.
    Dabei ist die Lösung erheblich umfangreicher geworden als erst vermutet, aber meine Forensoftware wollte es so, bzw. ich wollte/kann es nicht besser und will auch nicht so viel umstricken :error:

    Code
    $patterns[] = "#\*** Link veraltet ***$uid\]http:\/\/(www.|^www.)(youtube.com\/embed\/|youtu.be\/|youtube.com\/watch\?v=|youtube.com\/watch\?channel=[A-Za-z0-9]*&v=|youtube.com\/user\/[A-Za-z0-9]*\#p\/[a-z]/[1-9][0-9]/)(.*?)(|&.*?)\[/video:$uid\]#si"; 
       $replacements[] = $bbcode_tpl['video']; 	
    
    
    	$text = preg_replace($patterns, $replacements, $text);


    Funktioniert mit den hier geposteten Urls, hat noch Luft für Verbesserungen - mal gucken was die User bei mir noch finden.

    Grüße