Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: podmiana części kodu
Forum PHP.pl > Forum > PHP
chrzanowski
witam,
czy da radę złożyć skrypt, który by podmieniał część kodu w includowanym dokumencie? np. w 'strona.htm, która jest includowana do indexu podmienić wszystkie 'a href=' na 'a href=grafika/'
jeśli tak, to proszę o odpowiedź
z góry dzięki
spenalzo
Owszem:
[php:1:42f7406b9f]<?php
$nazwa="nazwapliku.html";
$f=implode("",file($nazwa));
$f=str_replace("a href=","a href=grafika/",$f);
$f2=fopen($nazwa,"w");
fwrite($f2,$f);
fclose($f2);
?>[/php:1:42f7406b9f]
chrzanowski
hm, chodzi mi raczej o coś innego.
po wklepaniu adresu index.php?id=strona. w strona.htm (który jest w galeria/) są linki do obrazków <img src=rysunek.jpg>, a po wincludowaniu strony do indexu, ścieżka do obrazka ma wskazywać <img src=galeria/rysunek.jpg>
mam jeszcze parenaście takich plików i zależy mi na tym, żeby skrypt podmieniał na bierząco ścieżkę, ale żeby nie modyfikował samych plików
da radę zrobić?
menic
Raczej niemozliwe
chrzanowski
mam nadzieję, że istnieje jakaś szansa...
a jakby zrobić taki myk, żeby użyć w tym strona.htm kod php w taki sposób, że po wczytaniu go na serwerze z obsługą php ścieżka będzie prowadziła do pliku 'galeria/rysunek.jpg' a odpalając z dysku - do rysunek.jpg?
menic
Ew. mozesz użyć httacces.
chrzanowski
tzn?
menic
Można (:?smile.gif stworzyć plik .httacces i napisać w nim aby wszystkie linki z do plikow .jpg zamieniał na inne katalogi.
Ale nie jestem pewnien czy akurat takie cus sie da zrobić :?
nobody
[php:1:e35303927c]<?php
$zaw=fread(fopen("galeria/strona.html", "r"), filesize("galeria/strona.html"));
$zaw=str_replace("<img src=", "<img src=galeria/", $zaw);
print $zaw;
?>[/php:1:e35303927c]
O to sie rozchodzi? U mnie chodzi bez problemu...
chrzanowski
hm, wkleiłem kodzik do indexu, bądź to do strona.htm, ale w obu przypadkach duplikuje mi zawartość strona.htm nie zmieniając nawet linku sad.gif
nobody
Includujesz na stronie glownej (index.php) plik strona.htm z katalogu galeria? Tak? No wiec zamiast includowac strone poprostu do index.php wstaw ten kod:
[php:1:870fdc4963]<?php
# zmienila sie nazwa pliku strona.html na strona.htm bo nie zauwazylem na poczatku
$zaw=fread(fopen("galeria/strona.htm", "r"), filesize("galeria/strona.html"));
$zaw=str_replace("<img src=", "<img src=galeria/", $zaw);
print $zaw;
?>[/php:1:870fdc4963]
I ten skrypt wyswietli Ci zawartosc strony galeria/strona.htm ze zmienionymi src'sami obrazkow. Sprawdzalem u mnie dziala.
Pozdro.
chrzanowski
tę literówkę 'html' to od razu zauważyłem, ale nie w tym problem tkwił. chodziło o wielkość liter :? ale już wszystko jest ok. poza tym warto na koniec dać [php:1:4d29a877fb]exit;[/php:1:4d29a877fb] jak duplikuje zawartość strony (oczywiście jak się dodało do strona.htm)
wielkie dzięki nobody
w nagrodę 'Pomogłeś mi' biggrin.gif
chrzanowski
o właśnie, jeszcze jedno: istnieje komenda, żeby odczytało nazwę pliku i folderu, w jakim się znajduje?
adwol
Cytat
o właśnie, jeszcze jedno: istnieje komenda, żeby odczytało nazwę pliku i folderu, w jakim się znajduje?

Aktualny plik który jest wykonywany, znajduje się zawsze w predefiniowanej stałej __FILE__, katalog możesz wyciagnąć sobie funkcją dirname().
[php:1:5f91051006]<?php
print __FILE__ . "n";
print dirname(__FILE__) . "n";
?>[/php:1:5f91051006]
chrzanowski
w sumie jednak wykorzystam zmienne $id ze switch'a, bo tu podaje jako nazwę pliku ścieżkę całego drzewa - c:usrkrasnalwwwszkolnapodmiana.php winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.