preg_match mal wieder

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • frank7l7
    antwortet
    Hallo,

    ja okay das suchmuster habe ich jetzt

    PHP-Code:
    $regex3 "!\<a href=\"https:\/\/(www\.)?inside-past\.com\/(.*?)\>!i"
    aber wie kann ich jetzt daraus
    <a href="###://inside-past.com/ ...> machen

    danke

    fra7l7

    Einen Kommentar schreiben:


  • Wurzel
    antwortet
    Original geschrieben von frank7l7

    mit ###https://(www.)inside-past.com/*### ersetze und dann später wieder die ### entferne
    na mit einem preg_replace() das auf das muster
    => https://(www.)inside-past.com/
    passt und daraus
    => ###://(XXX.)inside-past.com/
    macht ... und nat. umgekehrt ...

    Einen Kommentar schreiben:


  • frank7l7
    antwortet
    ok ja das könnte klappen aber wie stelle ich das nun wieder an:

    wenn ich erst alle links mit https://(www.)inside-past.com/*

    mit ###https://(www.)inside-past.com/*### ersetze und dann später wieder die ### entferne

    danke

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    ich führ mal zusammen. auch du brauchst keine crosspostings zu eröffnen!

    Einen Kommentar schreiben:


  • Wurzel
    antwortet
    wenn du das nur einmalig machen musst, könntest du
    - alle links die NICHT gewndelt werden sollen mit einem '###' statt 'http' versehen
    - alle anderen links ersetzen
    - die '###' wieder zurückwandeln

    quick'n dirty

    Einen Kommentar schreiben:


  • frank7l7
    antwortet
    preg_replace, zu hülf

    Hallo,

    ich hab schon mal gepostet gehabt, ... aber ich kriegs einfach nicht gebacken

    in der $var (siehe unten) alle links ($regex1) ersetzten mit $insert! das funktioniert jetzt hab ich noch eine bedingung! alle links die mit
    https://(www.)inside-past.com/ anfangen soll er nicht berücksichtigen d.h. nicht replacen, ... ich komm einfach nit dahinter wie es gemacht werden muß


    danke



    PHP:--------------------------------------------------------------------------------
    $insert = "<a target=\"_blank\" href=\"https://inside-past.com/dereferer.php?url=";
    $regex1 = "!<a href=\"((http(s)?|ftp|file|news)://)!i";
    $res = preg_replace($regex1,$insert,$var);

    --------------------------------------------------------------------------------


    $var =

    <TABLE cellSpacing="0" cellPadding="0" width="100%" align="left" border="0">
    <TBODY>
    <TR>
    <TD><B><A HREF="http://past-research.com/mainframe.php?pg=32"><B>Hier bitte eine Überschrift eintragen </B></A>
    <BR></B>
    <BR><IMG height="99" hspace="12" src="https://sslsites.de/cms.past-research.com/image_upload_dir/sample.jpg" width="129" align="right" vspace="2" border="0">
    <P align="justify">dies ist ein <A HREF="https://inside-past.com/mainframe.php?pg=2">blindtext</A> und steht für sich alleine nur aus layouttechnischen gründen zur verfügung. dieser blindtext widersteht jeglicher aussage und untersteht keinem sinn. der blindtext ist <A HREF="http://www.test.de/" target="_self">rechtlich</A> unantastbar <A HREF="https://www.test.de/" target="_blank">und</A> kann <A HREF="ftp://ftp.test.pe/">nicht</A> zur <A HREF="mailto:frank@7l7.net">rechenschaft</A> gezogen werden - allerdings der urheber unter umständen der verneblung. dies ist ein blindtext und steht für sich alleine nur aus layouttechnischen gründen zur verfügung. dieser blindtext widersteht jeglicher aussage und untersteht keinem sinn. der blindtext ist rechtlich unantastbar und kann nicht zur rechenschaft gezogen werden - allerdings der urheber unter umständen der verneblung. dies ist ein blindtext und steht für sich alleine nur aus layouttechnischen gründen zur verfügung. dieser blindtext widersteht jeglicher aussage und untersteht keinem sinn. der blindtext ist rechtlich unantastbar und kann nicht zur rechenschaft gezogen werden - allerdings der urheber unter umständen der verneblung.</P></TD>
    </TR>
    </TBODY>
    </TABLE>

    Einen Kommentar schreiben:


  • frank7l7
    antwortet
    Hallo,

    war ne weile weg also ich hab mal verscuht selber die (?!xxx) bedingungen auszuprobieren aber war ehr nichts. was ich vor hatte:

    in der $var (siehe unten) alle links ersetzten mit $insert ersetzen die nicht gleich https://(www.)inside-past.com/* sind. ohne die bedingung klappts schon mal aber wie bastel ich nun die bedingung rein?

    danke


    PHP-Code:
    $insert "<a target=\"_blank\" href=\"https://inside-past.com/dereferer.php?url=";
    $regex1 "!\<a href=\"((http(s)?|ftp|file|news)://)!i";
    $res preg_replace($regex1,$insert,$var); 
    $var =

    <TABLE cellSpacing="0" cellPadding="0" width="100%" align="left" border="0">
    <TBODY>
    <TR>
    <TD><B><A HREF="http://past-research.com/mainframe.php?pg=32"><B>Hier bitte eine &Uuml;berschrift eintragen </B></A>
    <BR></B>
    <BR><IMG height="99" hspace="12" src="https://sslsites.de/cms.past-research.com/image_upload_dir/sample.jpg" width="129" align="right" vspace="2" border="0">
    <P align="justify">dies ist ein <A HREF="https://inside-past.com/mainframe.php?pg=2">blindtext</A> und steht f&uuml;r sich alleine nur aus layouttechnischen gr&uuml;nden zur verf&uuml;gung. dieser blindtext widersteht jeglicher aussage und untersteht keinem sinn. der blindtext ist <A HREF="http://www.test.de/" target="_self">rechtlich</A> unantastbar <A HREF="https://www.test.de/" target="_blank">und</A> kann <A HREF="ftp://ftp.test.pe/">nicht</A> zur <A HREF="mailto:frank@7l7.net">rechenschaft</A> gezogen werden - allerdings der urheber unter umst&auml;nden der verneblung. dies ist ein blindtext und steht f&uuml;r sich alleine nur aus layouttechnischen gr&uuml;nden zur verf&uuml;gung. dieser blindtext widersteht jeglicher aussage und untersteht keinem sinn. der blindtext ist rechtlich unantastbar und kann nicht zur rechenschaft gezogen werden - allerdings der urheber unter umst&auml;nden der verneblung. dies ist ein blindtext und steht f&uuml;r sich alleine nur aus layouttechnischen gr&uuml;nden zur verf&uuml;gung. dieser blindtext widersteht jeglicher aussage und untersteht keinem sinn. der blindtext ist rechtlich unantastbar und kann nicht zur rechenschaft gezogen werden - allerdings der urheber unter umst&auml;nden der verneblung.</P></TD>
    </TR>
    </TBODY>
    </TABLE>

    Einen Kommentar schreiben:


  • Sebastian W
    antwortet
    OffTopic:

    Naja, was klar ist und was nicht... trotzdem werden Fragen im Forum gestellt.

    ... egal.

    Einen Kommentar schreiben:


  • derHund
    antwortet
    Die Erklärung ist gut, und räumt misverständisse aus. - find ich zumindest
    OffTopic:
    ja, von mir aus, aber trotzdem die frage: welcher wert sollte im ergebnis stehen? wenn etwas nicht vorhanden ist? das suchergebnis gibt doch nur die treffer zurück ...

    außerdem sieht mans doch im ergebnis, daß da nix zurückgegeben wird ...? egal.

    Einen Kommentar schreiben:


  • Sebastian W
    antwortet
    Ja, hast schon recht.
    Aber ich finde man sollte es einfach nocht dazu schreiben, so wie hier:

    http://www.regenechsen.de/regex_de/regex_liste_de.html

    ...(?=...)

    Positive Lookahead-Assertion. Das Muster vor der Klammer wird nur erkannt, wenn das Muster in der Klammer danach gefunden wird. Das Muster in der Klammer ist im Suchergebnis nicht enthalten.


    Die Erklärung ist gut, und räumt misverständisse aus. - find ich zumindest

    Einen Kommentar schreiben:


  • derHund
    antwortet
    Original geschrieben von Sebastian W
    Hier habt ihr es erwähnt:

    (?:xxx)
    Verhält sich wie eine normale Klammerngruppe, erzeugt jedoch keine Backreference.

    Bei den anderen nicht.
    häh? wie soll denn eine nicht vorhandene zeichenfolge als backref zur verfügung stehen? was sollte da drin stehen?

    was meinst du mit
    nicht im Suchmuster enhalten
    ?

    Einen Kommentar schreiben:


  • Sebastian W
    antwortet
    Hier habt ihr es erwähnt:

    (?:xxx)
    Verhält sich wie eine normale Klammerngruppe, erzeugt jedoch keine Backreference.

    Bei den anderen nicht.

    Einen Kommentar schreiben:


  • Sebastian W
    antwortet
    Hä? Was hat das mit meiner Anmerkung zu tun?

    >> alles was in (?!xxx) bzw. (?<!xxx) nicht im Suchmuster enhalten ist

    Wenn man schreibt (.*) ist es im Suchmuster enthalten. Bei (?!) etc eben nicht.

    Einen Kommentar schreiben:


  • mrhappiness
    antwortet
    Original geschrieben von derHund
    (?!xxx)

    [...]

    Trifft auf eine Zeichenkette zu, die "text1" enthält, aber kein "text2" danach.


    (?<!xxx)

    [...]

    Trifft auf eine Zeichenkette zu, die "text2" enthält, aber nur, wenn "text1" nicht davor kommt.

    Einen Kommentar schreiben:


  • Sebastian W
    antwortet
    bin ich blind? Oder meinste beim Link?

    Einen Kommentar schreiben:

Lädt...
X