ďťż

[RSS] Jak przekazać adres bazowy? gdy występują ścieżki względne?

       

Podstrony


telcocafe

Adres: domain.com/news/55

Treść nowości zawiera linki i obrazki ze ścieżkami względnymi.

Czytnik RSS interpretuje adresy tak: domain.com/news/img/test.png, domain.com/news/article/firefox_4_wydany

Jak przekazać czytnikowi adres bazowy? Czy w ogóle się da? Czy zostaje konieczność zamiany linków w treści nowości?



Nie jesteś jedyny :lol: Spróbuj tak:<?php function relToAbs($text, $base) { if (empty($base)) return $text; // base url needs trailing / if (substr($base, -1, 1) != '/') $base .= '/'; // Replace links $pattern = '/<a([^>]*) href="[^http|ftp|https]([^"]*)"/'; $replace = '<a\${1} href="'.$base.'\${2}"'; $text = preg_replace($pattern, $replace, $text); // Replace images $pattern = '/<img([^>]*) src="[^http|ftp|https]([^"]*)"/'; $replace = '<img\${1} src="'.$base.'\${2}"'; $text = preg_replace($pattern, $replace, $text); // Done return $text; }

Sprawdzę, czy czytniki respektują tag xml:base. Jeśli nie, wtedy pozostanie konwersja adresów URL.

A najprościej - używać wszędzie bezwzględne URLe, lub wszędzie względne bez przepisywania na URL katalogowe ;) Mieszanki dość szybko doprowadzą do problemów.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.