Fehler beim preg_replace
Dirk_Cologne
- php
Guten Abend,
ich habe folgenden Code:
$text = "Hallo, ich bin ein Test <br><br>https://www.youtube.com/watch?v=dmX_idiAuy4<br><br>Hier noch ein Video <br><br>http://youtu.be/dmX_idiAuy4";
$replace = '<iframe width="560" height="315" src="//www.youtube.com/embed/$1?rel=0" frameborder="0" allowfullscreen></iframe>';
$text = preg_replace(array ("/[a-zA-Z\/\/:\.]*youtube.com\/watch\?v=([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i",
"/[a-zA-Z\/\/:\.]*youtu.be\([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i"),$replace,$text);
echo $text;
wenn ich es teste kommt folgende Meldung "Warning: preg_replace(): Compilation failed: unmatched parentheses at offset 41" laut Google sagt mir diese Meldung dass eine Klammer nicht gesetzt ist, wenn ich mir das mit Notepad++ ansehe sind aber alle Klammern gesetzt und auch geschlossen.
Seht ihr, wo der Fehler ist?
Hi,
wenn ich es teste kommt folgende Meldung "Warning: preg_replace(): Compilation failed: unmatched parentheses at offset 41" laut Google sagt mir diese Meldung dass eine Klammer nicht gesetzt ist, wenn ich mir das mit Notepad++ ansehe sind aber alle Klammern gesetzt und auch geschlossen.
Seht ihr, wo der Fehler ist?
Du hast die erste öffnende runde Klammer (im zweiten Suchmuster) mit einem davor stehenden \ *maskiert*, und deshalb ist die nachfolgende schließende runde Klammer natürlich “unmatched”.
MfG ChrisB
Hallo,
Du hast die erste öffnende runde Klammer (im zweiten Suchmuster) mit einem davor stehenden \ *maskiert*, und deshalb ist die nachfolgende schließende runde Klammer natürlich “unmatched”.
ich hab nun das hier:
/[a-zA-Z\/\/:\.]*youtu.be/([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i
ist genau das gleiche wie Anweisung davor nur eben aus youtube.com wird youtu.be und das watsch v= ist weg. Aber es funktioniert nicht.
Hallo Dirk,
Seht ihr, wo der Fehler ist?
In der Tatsache dass das hier ein Crossposting ist: http://phpforum.de/forum/showthread.php?t=278819 (Posting #25ff) vielleicht?
Gruß,
Tobias
Das ist ein Drecks Forum, mehr kann ich dazu nicht sagen! Und man darf sich ja wohl mehrere Forum um Hilfe fragen, oder ist das etwa verboten?
Hallo Dirk_Cologne,
Das ist ein Drecks Forum, mehr kann ich dazu nicht sagen!
weil du nicht alles fertig vorgesetzt bekommst?
Und man darf sich ja wohl mehrere Forum um Hilfe fragen, oder ist das etwa verboten?
Es ist imho unverschämt in zwei Foren die gleiche Frage zu stellen - so macht sich womöglich in einem Forum jemand die Arbeit zu Antworten obwohl das Problem im anderen Forum längst gelöst ist. Aus diesem Grund sind Crosspostings eigentlich überall unerwünscht, in manchen Foren werden solche Threads sogar gnadenlos geschlossen.
Gruß,
Tobias
Ach ja, geil dich das auf in anderen Foren nach Doppelpostings zu suchen? Ich habe im anderem Forum keine Hilfe bekommen wie du sicherlich lesen kannst.
Außerdem 2/3 ALLER Fragen die hier gestellt werden sind auf ANDEREN Foren zu 100% zu finden! Dann müsste das Forum gleich dicht gemacht werden.
Hallo,
Und man darf sich ja wohl mehrere Forum um Hilfe fragen, oder ist das etwa verboten?
nein, ich find das absolut legitim. Allerdings gebietet es IMO der Anstand, dann auch darauf hinzuweisen.
Ciao,
Martin
@@Dirk_Cologne:
nuqneH
Das ist ein Drecks Forum,
mehr kann ich dazu nicht sagen!
Qapla'
So geht wohl:
$text = "Hallo, ich bin ein Test <br><br>https://www.youtube.com/watch?v=dmX_idiAuy4<br><br>Hier noch ein Video <br><br>http://youtu.be/dmX_idiAuy4";
$replace = '<iframe width="560" height="315" src="//www.youtube.com/embed/$1?rel=0" frameborder="0" allowfullscreen></iframe>';
$text = preg_replace(array ("/[a-zA-Z\/\/:\.]*youtube.com\/watch\?v=([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i",
"/[a-zA-Z\/\/:\.]*youtu.be\/([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i"),$replace,$text);
echo $text;
keine Ahnung ob es richtig ist, aber ich sitze 3 Tage an dem Script.