ERLEDIGT
JA
JA
ANTWORTEN
10
10
ZUGRIFFE
489
489
EMPFEHLEN
-
01.07.08 14:36 #1McNiko 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
-
01.07.08 14:51 #2
Am leichtesten geht es mit preg_replace():
Das Pattern ist relativ einfach: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
);
(?:|[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 von Steve Wozniak
-
01.07.08 14:57 #3McNiko Tutorials.de Gastzugang
So sieht es jetzt bei mir aus:
...funktioniert aber nicht wie müsste das aussehen mit dem preg_replace()?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>');
}
Danke
mfg McNiko
-
01.07.08 14:58 #4
- 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>';
-
01.07.08 15:05 #5
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 von Steve Wozniak
-
01.07.08 15:33 #6McNiko 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
-
01.07.08 15:54 #7
- Registriert seit
- Oct 2007
- Ort
- Dorfen (Bayern)
- Beiträge
- 41
Der steht im Prinzip schon hier

Wie das Array tatsächlich aufgebaut ist siehst du überPHP-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>';
}
statt $video['link'] musst du eben die passende Variable verwenden.PHP-Code:echo '<pre>';
print_r($video);
echo '</pre>';
PS: mysql_fetch_assoc() ist schneller als mysql_fetch_object()
-
01.07.08 16:07 #8McNiko Tutorials.de Gastzugang
Will irgentwie nicht funktionieren

DankePHP-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>';
}
?>
mfg McNiko
-
Sowas ist keine Fehlerbeschreibung. Wenn du schon Hilfe erwartest, könntest du ja wenigstens sagen, was nicht funktioniert.Will irgentwie nicht funktionieren
MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
01.07.08 16:17 #10McNiko Tutorials.de Gastzugang
Das Video wird nicht angezeigt, kann es vielleicht daran liegen das...
falsch ist?PHP-Code:[''.$sqlRowMySQL->Link.'']
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
-
01.07.08 19:33 #11
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:
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).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>
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 von Steve Wozniak
Ähnliche Themen
-
Videos mit youtube-API runterladen
Von 'GreenDragon' im Forum JavaAntworten: 3Letzter Beitrag: 10.03.10, 18:21 -
Videos Youtube
Von designerfreak im Forum Videoschnitt, Videotechnik & -produktionAntworten: 1Letzter Beitrag: 09.06.08, 09:49 -
Videos von youtube
Von maarian im Forum PHPAntworten: 0Letzter Beitrag: 29.01.07, 19:37





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren