Hej, może już nie raczkuję w php, ale nie znalazłem lepszego działu na napisanie tego tematu, a może ktoś z starych wyjadaczy będzie mógł mi wyjaśnić gdzie popełniłem problem i naprowadzi mnie na rozwiązanie mojego problemu smile.gif Przechodzą do sedna, mam problem z funkcją preg_match_all(). Chcę zrobić w moim serwisie zamianę każdego linku z obrazkiem na taki, który będzie na mojej domenie (tzw. proxy image, ale bardziej amatorskie).

Całość wygląda tak:
Kod
$gunwo = preg_match_all('#src="(https?://[^"]+)" [^/]+#', $finalOutput, $matches);

foreach ($matches[1] as $url) {
    $siusiak = base64_encode($url);
    $finalOutput = str_replace($url, 'https://skript.pl/proxy/img/index.php?url='.$siusiak.'', $finalOutput);
}


Nie zwracajcie uwagi na nazwy zmiennych.

Dodam, że całość działa na IPB 3.4.6, dokładie w pliku htmlOutput.php jeżeli komuś potrzebna taka informacja.

Huh, nadal nie wyjaśniłem na czym polega problem :/ Chodzi o to, że funkcja preg_match_all() nie "wykrywa" wszystkich adresów, przykład:
ten działa: https://skript.pl/uploads/imgs/skriptpl_143...go_150px_60.png
a ten już nie: https://skript.pl/uploads/imgs/skriptpl_143..._3d-tree_16.png

No i ktoś potrafi mi wyjaśnić w czym jest problem? snitch.gif
Zrobiłem też dodatkowy skrypt, aby coś sprawdzić:
Kod
$url = $_GET['url'];
$siusiak = base64_encode($url);

echo 'URL: '.$url.' <br/>';
echo 'base64: '.$siusiak.' <br/>';
echo '<img src="index.php?url='.$siusiak.'" />';


Efekt dostępny tutaj: https://skript.pl/proxy/img/test.php?url=
Podając te dwa adresy, które dałem wcześniej, obydwa działają co mnie również zaskoczyło, bo przecież ten drugi link nie działał (https://skript.pl/uploads/imgs/skriptpl_1433968510__3d-tree_16.png), a tutaj działa: https://skript.pl/proxy/img/test.php?url=ht..._3d-tree_16.png

Jeżeli ktoś zechce mi pomóc będę bardzo wdzięczny smile.gif