Text um String ersetzen --> preg_replace

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

  • Text um String ersetzen --> preg_replace

    Hallo,

    ich habe einen String, der sich mind. 10x ändert, aber ich weiß nicht, welche Werte er annimmt.

    Nun würde ich gerne den Text um diesen String ersetzen. Dieser Text ist immer gleich!

    Mein Versuch:

    PHP-Code:
    $seite preg_replace("/http\:\/\/STRING\.$domainname\.$domainext\//i"//Zeilenumbruch fuer euch
    $home_path."http://STRING.$domainname.$domainext",$seite); 
    STRING = der sich immer ändernde String
    1. String = *
    2. String = i don't know

    So, wenn ich dass aber nun ausführe, kommt nicht das gewünschte Ergebnis heraus!

    Nur http:// nehmen geht auch nicht, da dort auch noch Verlinkungen zu anderen Seiten existieren, die nicht berücksichtigt werden sollen...

    Ich bin schon ne Weile am Grübeln, komm aber nicht zu einer gescheiten Lösung!

    Wisst ihr einen Weg? Wäre echt genial!

    Vielen Dank
    Zuletzt geändert von Timelesk; 06.06.2005, 16:10.

  • #2
    die Preg-funktionen erwarten auch reguläre ausdrücke. http://www.php-resource.de/tutorials/read/10/1/

    Kommentar


    • #3
      schau dir das 3. Bsp. mal an: http://www.php.net/function.preg_match , mit etwas Modifikation kannst du das Teil unmittelbar nach http:// heraus holen

      Kommentar


      • #4
        Hallo,

        evtl. mit parse_url() das ganze zerpflücken?
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          Hi,

          mit preg_match bekomm ich ja nur eine URL nach der anderen raus... Gut, ich könnte den Array dann mit einer for-schleife durchwandern und jede Subdomain extra ersetzen.

          Ich lade den Quelltext einer HTML-Datei über ob_start, ob_get_contents und ob_end_clean in eine Variable rein!

          Nun möchte ich alle URLs, die zu einer bestimmten Domain gehören, samt Subdomains mit einem Vorsatz (z.B. http://www.referer.de/url=) versehen.

          Nur leider will das ganze nicht so, wie ich will!

          PHP-Code:
              preg_match("/^(http:\/\/)?(\.$domainname+)/i"$seite$trefferPREG_OFFSET_CAPTURE);
              
          print_r($treffer);
              exit;

              
          $seite preg_replace("/^(http\:\/\/)((.*?)(\.$domainname\.$domainext\/))/i",
          $home_path."http://",$seite); 
          $domainname = nur der Name der Domain (www.google.de --> google)
          $domainext = nur die Endung (www.google.de --> de)

          Ich weiß nicht, was ich falsch mache


          Danke für eure Ratschläge...
          Zuletzt geändert von Timelesk; 08.06.2005, 16:27.

          Kommentar


          • #6
            habs jetzt nicht ganz durchgelesen. auch wegen dem scrollbalken.aber wenn ich mir deinen code so ansehe, dann frage ich mich, welchen inhalt z.B. die Variable $domainname hat. Der wird nirgends definiert, oder machst du das vorher.

            Stell auch mal dein Error-Reporting auf E_ALL.

            Kommentar


            • #7
              Hi,

              der Domainname wird vorher schon korrekt ausgelesen.

              PHP-Code:
                  $suche = (strstr($url,'www.')) ? 'www.' 'http://';
                  
              $url_var explode($suche,$url);
                  
              $url_var explode('/',$url_var[1]);
                  
              $suche = ($suche == 'www.') ? 'http://www.' 'http://';
                  
              $domainname $url_var[0];
                  
              $var explode('.',$domainname);
                  
              $domainname $var[0];
                  
              $domainext $var[1];
                  
              $domainext .= (count($var) == 3) ? '.'.$var[2] : '';
                  
              $domain_only "$domainname.$domainext";
                  
              $domain $suche.$url_var[0].'/'
              Vielleicht ein wenig umständlich, aber es geht!

              Dann hab ich in den Anfang der Datei folgendes geschrieben:
              PHP-Code:
              ini_set('error_reporting'E_ALL); 
              Und es kam nichts dabei heraus! Er arbeitet alles korrekt durch, aber den Teil vorne drann will er mir net setzen!

              PS: Hab's jetzt mal umgebrochen, aber in meiner Auflösung (1280x768) gab's keinen Scrollbalken...

              Kommentar

              Lädt...
              X