getimagesize i ścieżka do pliku

0

Witam

Mam problem tego rodzaju, że przy wywołaniu funkcji getimagesize("/img/obrazek1.jpg") otrzymuję komunikat, że nie znaleziono pliku. Ale jeżeli w treści strony umieszczę to jest on wyświetlany prawidłowo. Getimagesize jest wywoływany prawidłowo jedynie dla względnej ścieżki: "img/obrazek1.jpg".

Czy mógłby mi ktoś wytłumaczyć z czym to jest związane? Podejrzewam, że z jakimiś ustawieniami php typu document root, ale nie do końca łapię jak to powinno być poustawiane, żeby działało za każdym razem prawidłowo :(

0

Dla domyślnie skonfigurowanego PHP ścieżka rozpoczynająca się od "/" to po prostu korzeń całego systemu plików systemu operacyjnego. Jeżeli możesz używać ścieżek względnych to niech wszystkie odniesienia do plików będą tworzone za ich pomocą.

0
Rev napisał(a):

Dla domyślnie skonfigurowanego PHP ścieżka rozpoczynająca się od "/" to po prostu korzeń całego systemu plików systemu operacyjnego. Jeżeli możesz używać ścieżek względnych to niech wszystkie odniesienia do plików będą tworzone za ich pomocą.

Nie mogę niestety używać ścieżek względnych ponieważ używam mod_rewrite i te same zasoby są mapowane z różnych poziomów, więc jedynym rozwiązaniem jest tutaj używanie ścieżek w odniesieniu do roota strony czyli rozpoczynając właśnie od '/' :(

0

$_SERVER["DOCUMENT_ROOT"]

0

Ale przecież dla PHP ścieżka jest względna wobec położenia pliku PHP, a nie ścieżki z jaką został wywołany przez przeglądarkę.

0
Rev napisał(a):

Ale przecież dla PHP ścieżka jest względna wobec położenia pliku PHP, a nie ścieżki z jaką został wywołany przez przeglądarkę.

Ok. Nie będę dyskutował bo jak się dokładnie nie zna tematu to trochę ciężko :) W każdym razie dalej jest problem, że ścieżka względna nie działa prawidłowo z mod_rewrite symulując różne poziomy strony, np: wywołanie "www.mojadomena.pl/Szukaj/Forum/tutaj_tresc_zapytania.html" a w kodzie obrazek1.jpg gdzie katalog img względem roota: "/img/obrazek1.jpg", więc nie ma szans na załadowanie tego obrazka bo będzie on szukany wewnątrz katalogu: "/Szukaj/Forum/img/obrazek1.jpg"

Natomiast co do $_SERVER['DOCUMENT_ROOT'] to niestety getimagesize też nie działa z tak skonstruowaną ścieżką :(

0

Tylko, że to są dwie różne kwestie. mod_rewrite nie ma żadnego wpływu na przetwarzanie ścieżek przez funkcje PHP, ale ma wpływ na to, w jaki sposób relatywne ścieżki są traktowane przez przeglądarkę. Generalnie zasada jest taka, żeby ścieżki bezpośrednio w plikach HTML podawać bezwzględnie do korzenia serwisu, a w plikach CSS i PHP relatywnie do położenia tych plików.

0
Rev napisał(a):

Tylko, że to są dwie różne kwestie. mod_rewrite nie ma żadnego wpływu na przetwarzanie ścieżek przez funkcje PHP, ale ma wpływ na to, w jaki sposób relatywne ścieżki są traktowane przez przeglądarkę. Generalnie zasada jest taka, żeby ścieżki bezpośrednio w plikach HTML podawać bezwzględnie do korzenia serwisu, a w plikach CSS i PHP relatywnie do położenia tych plików.

Aha, fajnie to wytłumaczyłeś :) A to z kolei naprowadziło mnie gdzie robię błąd. Jeżeli nie można podać ścieżki względem roota dla getimagesize to sprawdziłem wszystkie miejsca, w których odwołuję się do obrazka i poprawiłem zgodnie z opisaną powyżej zasadą - działa :) Dzięki wielkie!

1 użytkowników online, w tym zalogowanych: 0, gości: 1