tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
10
ZUGRIFFE
489
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    McNiko Tutorials.de Gastzugang
    Hallo, ich arbeite gerade an einer Homepage (Blog) in der ich gerne YouTube Videos verlinken möchte, diese sollen dann in dem YouTube Player auf der Homepage angezeigt werden jedoch will ich nur den link z.B. http://de.youtube.com/watch?v=vRGAj58nyrs in mein FormularFeld eingeben damit dieser in die Datenbank eingeschrieben wird.

    Dies wär der YouTube Code für den Player: <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/vRGAj58nyrs&hl=de"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/vRGAj58nyrs&hl=de" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>. Was für einen Code benötige ich?

    Danke

    mfg McNiko
     

  2. #2
    Avatar von maeTimmae
    maeTimmae maeTimmae ist offline Mitglied Platin
    Registriert seit
    Aug 2007
    Ort
    Erfurt, Saarbrücken, Leipzig und Fulda
    Beiträge
    515
    Am leichtesten geht es mit preg_replace():

    PHP-Code:
    preg_replace(
            
    '%http://(?:|[a-z]+\.)youtube\.com/watch\?v=([0-9a-zA-Z]+?)%Uis',
            
    '<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/\1&hl=de"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/vRGAj58nyrs&hl=de" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>',
            
    $string
        
    ); 
    Das Pattern ist relativ einfach:
    (?:|[a-z]+\.) matcht sowohl "www.", "de.", ... als auch keine Subdomain (einfach "youtube.com"), ([0-9a-zA-Z]+?) extrahiert anschließend die Zeichenfolge hinter dem "v=". Das Fragezeichen hinter dem "+" bedeutet nichts anderes, als dass für dieses Subpattern die Regex-Engine gefräßig sein soll (so viele Zeichen wie möglich).
    Anschließend wird dann der Verweis auf das erste gefetchte Subpattern ("\1" im Replace-String --> "http://www.youtube.com/v/\1&hl=de") durch diese Zeichenfolge ersetzt.
     
    Zitat Zitat von Steve Wozniak
    Never trust a computer you can't throw out a window.

  3. #3
    McNiko Tutorials.de Gastzugang
    So sieht es jetzt bei mir aus:

    PHP-Code:
    while($sqlRowMySQL mysql_fetch_object($sqlErgebnis))
    {

    preg_replace(
            
    '%http://(?:|[a-z]+\.)youtube\.com/watch\?v=([0-9a-zA-Z]+?)%Uis',
            
    '<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/\1&hl=de"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/vRGAj58nyrs&hl=de" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>',
            
    $string
        
    );  
        
       echo (
    '<object width="425" height="344"><param name="movie" value="'.$sqlRowMySQL->Link.'"></param><param name="allowFullScreen" value="true"></param><embed src="'.$sqlRowMySQL->Link.'" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>');

    ...funktioniert aber nicht wie müsste das aussehen mit dem preg_replace()?

    Danke

    mfg McNiko
     

  4. #4
    mayermart mayermart ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Ort
    Dorfen (Bayern)
    Beiträge
    41
    Wieso denn so umständlich?

    PHP-Code:
    $youtubelink $_POST['youtubelink'];
    echo 
    '<object width="425" height="344">
        <param name="movie" value="'
    .$youtubelink.'"></param>
        <param name="allowFullScreen" value="true"></param>
        <embed src="'
    .$youtubelink.'" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed>
    </object>'

     

  5. #5
    Avatar von maeTimmae
    maeTimmae maeTimmae ist offline Mitglied Platin
    Registriert seit
    Aug 2007
    Ort
    Erfurt, Saarbrücken, Leipzig und Fulda
    Beiträge
    515
    Denkfehler - Bin von einem Link in einem umfangreicheren Text ausgegangen. So hast du, mayermart, natürlich Recht.

    McNiko: preg_replace() gibt einen String zurück, der natürlich entsprechend aufgenommen werden sollte:
    PHP-Code:
    $sqlRowMySQL->link preg_replace(
            
    '%http://(?:|[a-z]+\.)youtube\.com/watch\?v=([0-9a-zA-Z]+?)%Uis',
            
    '<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/\1&hl=de"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/vRGAj58nyrs&hl=de" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>',
            
    $sqlRowMySQL->link
        
    ); 
    Geändert von maeTimmae (01.07.08 um 15:09 Uhr)
     
    Zitat Zitat von Steve Wozniak
    Never trust a computer you can't throw out a window.

  6. #6
    McNiko Tutorials.de Gastzugang
    Ich probiere schon die ganze Zeit rum aber irgentwie zeigt der das Video nicht an!

    Es wäre nett wenn jemand den kompletten Code schreiben könnte!?

    Danke

    mfg McNiko
     

  7. #7
    mayermart mayermart ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Ort
    Dorfen (Bayern)
    Beiträge
    41
    Der steht im Prinzip schon hier

    PHP-Code:
    while ($video mysql_fetch_assoc($sqlErgebnis)) {
        echo 
    '<object width="425" height="344">
            <param name="movie" value="'
    .$video['link'].'"></param>
            <param name="allowFullScreen" value="true"></param>
            <embed src="'
    .$video['link'].'" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed>
        </object>'


    Wie das Array tatsächlich aufgebaut ist siehst du über
    PHP-Code:
    echo '<pre>';
    print_r($video);
    echo 
    '</pre>'
    statt $video['link'] musst du eben die passende Variable verwenden.
    PS: mysql_fetch_assoc() ist schneller als mysql_fetch_object()
     

  8. #8
    McNiko Tutorials.de Gastzugang
    Will irgentwie nicht funktionieren

    PHP-Code:
    <?
    # Verbindung
    include ('verbindung.php');

    # SQL Code
    $szMySQL "SELECT * FROM jc_m_music WHERE MusicID='".$_GET['MusicID']."'";
    $sqlErgebnis mysql_query($szMySQL);

    # Ausgabe
    while ($video mysql_fetch_assoc($sqlErgebnis)) {
        echo 
    '<object width="425" height="344">
            <param name="movie" value="'
    .$video[''.$sqlRowMySQL->Link.''].'"></param>
            <param name="allowFullScreen" value="true"></param>
            <embed src="'
    .$video[''.$sqlRowMySQL->Link.''].'" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed>
        </object>'
    ;  

    echo 
    '<pre>';
    print_r($video);
    echo 
    '</pre>';  
    }  
    ?>
    Danke

    mfg McNiko
     

  9. #9
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Will irgentwie nicht funktionieren
    Sowas ist keine Fehlerbeschreibung. Wenn du schon Hilfe erwartest, könntest du ja wenigstens sagen, was nicht funktioniert.

    MFG

    Sascha
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  10. #10
    McNiko Tutorials.de Gastzugang
    Das Video wird nicht angezeigt, kann es vielleicht daran liegen das...

    PHP-Code:
    [''.$sqlRowMySQL->Link.''
    falsch ist?

    Bei der Array abfrage gibt er dies aus!

    Array
    (
    [MusicID] => 2
    [Titel] => TBurnA - Ohne Dich
    [Link] => http://de.youtube.com/watch?v=fVbkc-535RE
    [Quelle] => YouTube
    [Art] => Other
    [Richtung] => Rap
    [Klicks] => 3
    [Timestamp] => 1214913712
    )

    Danke

    mfg McNiko
     

  11. #11
    Avatar von maeTimmae
    maeTimmae maeTimmae ist offline Mitglied Platin
    Registriert seit
    Aug 2007
    Ort
    Erfurt, Saarbrücken, Leipzig und Fulda
    Beiträge
    515
    Zitat Zitat von McNiko Beitrag anzeigen
    PHP-Code:
    [''.$sqlRowMySQL->Link.''
    Das sieht nicht nur seltsam aus, es ist auch relativ unsinnig

    Der Fehler lag jedoch abermals an mir. Richtig in Verwendung mit mysql_fetch_assoc() wäre natürlich:
    PHP-Code:
    <object width="425" height="344">
        <param name="movie" value="<?php echo $video['Link']; ?>"></param>
        <param name="allowFullScreen" value="true"></param>
        <embed src="'<?php echo $video['Link']; ?>'" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed>
    </object>
    Das aber bringt uns in eine missliche Lage, da die URL, so wie sie da angegeben ist, auf eine HTML-Ausgabe verweist, was keinem Flash-File entspricht. Dieses wird über eine etwas andere URL angesprochen (vergleich http://de.youtube.com/watch?v=vRGAj58nyrs und http://www.youtube.com/v/vRGAj58nyrs&hl=de).
    Am einfachsten geht es mit preg_replace(), solltest du aber zB nur von de.youtube.com aus verlinken, reicht auch sscanf().
    Hierbei wäre es durchaus sinnvoll, wenn du ein wenig Eigeninitiative ergreifst um den Kontext zu verstehen, in welchem beide Funktionen benutzt werden (können).


    PHP-Code:
    <?php
    // while ( $video= mysql_fetch_assoc(...) ):
        
    $video['Link'] = preg_replace(
                
    '%http://(?:|[a-z]+\.)youtube\.com/watch\?v=([0-9a-zA-Z]+?)%Uis',
                
    'http://www.youtube.com/v/\1&hl=de',
                
    $video['Link']
            );
    ?>
    <object width="425" height="344">
        <param name="movie" value="<?php echo $video['Link']; ?>"></param>
        <param name="allowFullScreen" value="true"></param>
        <embed src="'<?php echo $video['Link']; ?>'" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed>
    </object>
    <?php
    // endwhile;
     
    Zitat Zitat von Steve Wozniak
    Never trust a computer you can't throw out a window.

Ähnliche Themen

  1. Videos mit youtube-API runterladen
    Von 'GreenDragon' im Forum Java
    Antworten: 3
    Letzter Beitrag: 10.03.10, 18:21
  2. Videos Youtube
    Von designerfreak im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 1
    Letzter Beitrag: 09.06.08, 09:49
  3. Videos von youtube
    Von maarian im Forum PHP
    Antworten: 0
    Letzter Beitrag: 29.01.07, 19:37