Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: https url aus string entfernen - klappt im test aber nicht im script

    Clever

    • Schreiberling
    • Beiträge: 257
    Hallo  :-?

    folgendes Problem:
    Code: PHP  [Auswählen]
     <?php
          $input = 'https://www.xxxx.de/xxx/xxx/xxx/xxx.xxx?1234567890987654321111';
         $imgpfad = preg_replace('/\b(https?|ftp|file):\/\/[-A-Z+&@#\/%?=~_|$!:,.;]*[A-Z+&@#\/%=~_|$]/i', '', $input);

        //BOC Bild

     
            $image_path = 'http:/xxxxx.de/picture.php?inhalt=';
      //      $image_path2 = 'https://www.xxxx.de/xxx/xxx/pic/xxx=';
     //       $image_path3 = ($image_path . $image_path2) ;
            $image_link = ($image_path .$imgpfad);
            echo $image_link
     ?>
    ^

    funktioniert EINWANDFREI !! ab dem ? wirft er den Rest aus....direkt am $image_path

    ABER wenn ich den Aufbau dann in das Script einsetze, wo es hin soll, wird $input ausgelesen aber der Rest völlig ignoriert:

    Code: PHP  [Auswählen]
        $input = $products['products_image'];
      //   $imgpfad = preg_replace('/\b(https?|ftp|file):\/\/[-A-Z+&@#\/%?=~_|$!:,.;]*[A-Z+&@#\/%=~_|$]/i', '', $input);
         $imgpfad = preg_replace('/\b(https?|ftp|file):\/\/[-A-Z+&@#\/%?=~_|$!:,.;]*[A-Z+&@#\/%=~_|$]/i', '', $input);

        //BOC Bild

     
            $image_ori_path = 'http://xxxx.de/picture.php?inhalt=';
      $image_link = "\t"."\t"."\t".'<g:image_link>'.$image_ori_path .$imgpfad.'</g:image_link>'."\n";
     
    dann wirft er mir beide http raus - er ignoriert also HIER das preg_replace und ich hab absolut kein Plan warum ....
    habs auch mit strp_pos und explode versucht den Link aus $products['products_image'] raus zu ziehen
    gleiches Problem... aber WARUM ist das so ? bin echt ratlos  :nixweiss:

    Linkback: https://www.modified-shop.org/forum/index.php?topic=27421.0

    mooncrawler

    • Mitglied
    • Beiträge: 104
    Code: PHP  [Auswählen]
    'str_replace('https','http', $such_string);

    $image_path = 'http:/xxxxx.de/picture.php?inhalt=';

    $image_path = 'http://xxxxx.de/picture.php?inhalt=';

    Clever

    • Schreiberling
    • Beiträge: 257
    danke, funktioniert leider auch nicht....

    kann mir das nur noch so erklären, weil $products['products_image'] einige tausend datensätze sind...
    im testscript war es nur ein einzelner.

    cYbercOsmOnauT

    • modified Team
    • Beiträge: 914
    • Geschlecht:
    ... er ignoriert also HIER das preg_replace ...
    Das ist der entscheidende Part Deines Posts. Wenn ein preg_replace ignoriert wird, bedeutet es, dass die RegEx darin gar nicht greift. Da sie nicht greift wird auch nichts ersetzt und der String bleibt so wie er ist.
    Bau mal folgenden Konstrukt unter Dein $input =
    Code: PHP  [Auswählen]
    preg_match('/\b(https?|ftp|file):\/\/[-A-Z+&@#\/%?=~_|$!:,.;]*[A-Z+&@#\/%=~_|$]/i', $input, $hits);
    die(var_dump($hits));
    Ich könnte wetten es kommt ein leeres Array dabei heraus.
    Viele Grüße,
    Tekin Birdüzen - Zend Certified Engineer