|
|
Latest News |
Latest Threads |
|
|
54.559 Posts & 4.945 Themen in 78 Foren |
|
|
|
|
Forensuche |
|
Suchbegriff |
Benutzerauswahl |
Ergebnisse anzeigen |
|
|
YouTube Link entfernen 6 Beiträge in diesem Thema |
|
|
|
|
|
20.08.2013 - 12:58 Uhr |
|
|
|
Hey zusammen,
ich habe öfter das Problem, das die User ins Forum den kompletten YouTube Link posten, statt nur die letzten, die man für den bbcode brauch. Ich hatte vor Jahren mal gesehen, das es Seiten gibt, die den Link automatisch entfernen.
Bsp:
Gepostet wird "http://www.youtube.com/watch?v=c2QsRy_j5PE" statt nur "c2QsRy_j5PE" im BBCode.
Hat vielleicht jemand ne Idee wie man das umsetzen kann?
Nutze die Multi-Video-Station-PHPKIt-1.6.6
|
|
|
|
|
|
|
|
|
|
20.08.2013 - 17:43 Uhr |
|
|
|
Versuch es mal so:
- pkinc/class/bbcode.php
- Öffne o.g. Datei und suche das:
| PHP-Quelltext $text=preg_replace("#\[".$Import['movie_type']."\](.*)\[/".$Import['movie_type']."\]#esiU","\$this->movierewrite('\\1','$Import[movie_type]')",$text); | |
Und mache daraus das:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | | PHP-Quelltext if (trim($Import['movie_type'])==='Youtube')
{
preg_match("#\[".$Import['movie_type']."\](.*)\[/".$Import['movie_type']."\]#esiU", $text, $MatchID);
if (isset($MatchID[1]) && is_string($MatchID[1]) && trim($MatchID[1])!='')
{
$MatchID=trim($MatchID[1]);
preg_match('#v\=([a-zA-Z0-9\_\-]{11})#iU', $MatchID, $TmpID);
if (isset($TmpID[1]) && is_string($TmpID[1]) && trim($TmpID[1])!='')
{
$MatchID=$TmpID[1];
}
$text=preg_replace("#\[".$Import['movie_type']."\](.*)\[/".$Import['movie_type']."\]#esiU","\$this->movierewrite('$MatchID','$Import[movie_type]')",$text);
}
}
else
{
$text=preg_replace("#\[".$Import['movie_type']."\](.*)\[/".$Import['movie_type']."\]#esiU","\$this->movierewrite('\\1','$Import[movie_type]')",$text);
} | |
Bin mir aber nicht ganz sicher - reguläre Ausdrücke waren noch nie meine Stärke ^^""
--Edit
Code geändert und bisschen probiert. Hab es mit der normalen ID, normaler URL und aus Spaß mal mit Playlisten probiert. Hat bei mir funktioniert
|
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von k!r!ka - 20.08.2013 - 19:21 Uhr |
|
|
|
|
|
|
|
|
|
|
21.08.2013 - 10:59 Uhr |
|
|
|
Hey,
habe den Code eben mal eingebaut. An sich kann man es dann abspielen, allerdings sieht es dann so aus:
|
|
|
|
|
|
|
|
|
|
21.08.2013 - 21:29 Uhr |
|
|
|
Okay, neuer Versuch:
- pkinc/class/bbcode.php
- Öffne o.g. Datei und suche das (alter Code von oben):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | | PHP-Quelltext if (trim($Import['movie_type'])==='Youtube')
{
preg_match_all("#\[".$Import['movie_type']."\](.*)\[/".$Import['movie_type']."\]#esiU", $text, $GetMatch);
if (isset($GetMatch[1]) && is_array($GetMatch[1]) && count($GetMatch[1]) > 0)
{
foreach ($GetMatch[1] as $MatchID)
{
$MatchID=trim($MatchID);
$MatchID=str_replace('<a href="', NULL, $MatchID);
preg_match('#v\=([a-zA-Z0-9\_\-]{11})#iU', $MatchID, $TmpID);
if (isset($TmpID[1]) && is_string($TmpID[1]) && trim($TmpID[1])!='')
{
$MatchID=trim($TmpID[1]);
}
$text=preg_replace("#\[".$Import['movie_type']."\](.*)\[/".$Import['movie_type']."\]#esiU","\$this->movierewrite('$MatchID','$Import[movie_type]')",$text);
}
}
}
else
{
$text=preg_replace("#\[".$Import['movie_type']."\](.*)\[/".$Import['movie_type']."\]#esiU","\$this->movierewrite('\\1','$Import[movie_type]')",$text);
} | | |
Und mache daraus das
(Achtung: Der Code wird nicht korrekt im Post wiedergegeben. Für den korrekten Code einfach auf den Button Zitieren gehen und diese Stelle suchen und dann den Code entnehmen):
| PHP-Quelltext if (trim($Import['movie_type'])==='Youtube')
{
# get parsed text with URL-tag; and deparsed to [*youtube]LINK[/youtube]
$text=preg_replace("#\[".$Import['movie_type']."\]\<a(.*)\[/".$Import['movie_type']."\]\"(.*)\>(.*)\[/".$Import['movie_type']."\]#Uis", "[".$Import['movie_type']."]\\3[/".$Import['movie_type']."]", $text);
# get deparsed text and get die ID of video to regular bb-code: [*youtube]VideoID[/youtube]
$text=preg_replace("#\[".$Import['movie_type']."\][http:\/\/|www|http:\/\/www].*[\?|\&]v\=([a-zA-Z0-9\_\-]{11}).*\[/".$Import['movie_type']."\]#Uis", "[".$Import['movie_type']."]\\1[/".$Import['movie_type']."]", $text);
}
$text=preg_replace("#\[".$Import['movie_type']."\](.*)\[/".$Import['movie_type']."\]#Uis","\$this->movierewrite('\\1','$Import[movie_type]')",$text); | |
Hab das ganze bei mir probiert und .. naja, es hat zumindest bei mir funktioniert (auch wenn meine Tastatur etwas leiden musste *kleines Brotmesser weg legt*).
Wie schon vorher gesagt sind reguläre Ausdrücke nicht so wirklich mein Fall (und wird es wohl auch nie sein ^^""), aber mit obigen Code konnte ich normale Links, nur die Video-ID und Playlisten als Wert angeben und es wurde nur die Video-ID (die das MVS benötigt) zurückgegeben. Das Problem, was bei deinen Bild zu sehen war sollte eigentlich auch behoben sein.
Sollte dennoch was sein .. Bin nicht da
--Edit
Irgendetwas lief schief. Einfach nochmal den 2. Code-Block angucken und wenn was nicht übereinstimmt entsprechend abändern
|
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von k!r!ka - 22.08.2013 - 16:50 Uhr |
|
|
|
|
|
|
|
|
|
|
22.08.2013 - 15:30 Uhr |
|
|
|
|
|
|
|
Ähnliche Themen |
|
|
|
|
|
|
|
|