Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zamiana wezlow - DOMElement php
Forum PHP.pl > Forum > PHP
uczeń php
Witajcie
Mam taki problem wczytuje plik html -> file_get_contents() smile.gif ale w sekcji <body><div>TRESC ARTYKULU chcialbym zmienic img src="/img.jpg" na http://nowadomena/img.jpg i a href="file.html" na href="http://nowadomena/file.html". W googlach przeszukalem chyba wszystko wink.gif poczawszy od manuala PHP - DOM, nawet znalazlem algorytm przeszukiwania drzewka smile.gif. Po wielu moich wysilkach ulozylem cos takiego.
  1. new DOMDocument ();
  2. $dom->loadHTML ( $xmldoc );
  3. showNode ( $dom, 'blockquote' );
  4. function showNode($dom, $child_name) {
  5. $i = 0;
  6. while ( is_object ( $element = $dom->getElementsByTagName ( $child_name )->item ( $i ) ) ) {
  7. if ($element->nodeType == XML_ELEMENT_NODE)
  8. if ($element->childNodes->length > 0) {
  9. foreach ( $element->childNodes as $kids ) {
  10. if ($kids->nodeType == XML_ELEMENT_NODE)
  11. if ($kids->childNodes->length > 0) {
  12. $child_name = $kids->nodeName;
  13. echo $kids->nodeName;
  14. showNode ( $dom, $child_name );
  15. }
  16. }
  17. }
  18. $i ++;
  19. }
  20. }

Zamiast img pojawia sie span na level div -> deep div -> deep powinno byc img a nie span. Chcialbym przeszukac cale drzewo na kazdym jego nawet najglepszym poziomie, ze tak powiem i tam gdzie jest img src /img.jpg zamien na src=/nowadomena/img.jpg i a href file.html zamien na href nowadomena/file.html.
Czy ktos mi pomoze ? sad.gif
Ps. (sorry, za brak polskich znakow ale mam windowsa wersji angielskiej.)
trueblue
A nie lepiej przekierowanie w .htaccess?

Kod
RewriteEngine On
RewriteCond %{HTTP_HOST} ^staradomena.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.staradomena.com$
RewriteCond %{REQUEST_URI}  .(jpg|html)$
RewriteRule ^(.*)$ http://www.nowadomena.com/%{REQUEST_URI} [R=301,L]


Dla dokładnie tych nazw:
Kod
RewriteCond %{REQUEST_URI}  (img.jpg|file.html)$
uczeń php
  1. <div>Artykul TEKST TEKST <br /><div><span></span></div><div><span><img src ="http://sponsor_1.pl/baner_sponsora_1.jpg"></span></div>TEKST TEKST<br />TEKST TEKST<div><img src=/moja_fotka.jpg></div>Tekst Tekst<p><a href="next_page.html"></p>TEKST TEKST<p><a href="http://moj_przyjaciel.pl/"></a></p>
wykonaj reaplece on src=/moja_fotka.jpg and src=/next_page.html natomiast baner_sponsora i moj_ przyjaciel.pl pozostaw bez zmian!!! Oto mi chodzi tylko, ze drzewo ma o wiele wiecej poziomow, wiec sprawdz kazdy jeden poziom a napotkawszy czy to img moja_fotka czy to <a href="next_page.html"> zamien natomiast baner sponsora i linki do moich przyjaciol pozostaw bez zmian wink.gif

PS (Jest to serwis organizacji uzytku publicznego tych stron jest od groma i ciut ciut) zostalem poproszony o przeniesienie jego z html bo wszystko jest w html + javascripcie smile.gif do php dlatego tresci tych stron chcialbym zapisac tez w bazie danych mysql i to juz nie jako ogarnalem smile.gif ale teraz zamiana owych img i a href. Nie moge napisac jednego okreslonego wzorca, ze tak powiem, bo rozne strony maja rozne struktury tzn rozne poziomy drzew np na jednej stronie jest TEKST TEKST<div><span><img> a na drugiej jest TEKST TEKST <div><img> albo TEKST TEKST <img>, wiec musze wymyslic cos BARDZO UNIWERSALNEGO smile.gif a pojedynczo poprawiac "Z PALUCHA" to jestem chyba za bardzo leniwy smile.gif, a wiec chyba zostaje juz tylko DRZEWKO. Htaccess-a tez trudno mi sobie wyobrazic jakos bo samych podstron jest ciut ciut a jeszcze wiecej img i a href, wiec jak ma sie to do questionmark.gif
Cytat
Dla dokładnie tych nazw:
Kod
RewriteCond %{REQUEST_URI} (img.jpg|file.html)$
IAmBoskiM
Ejejej, ale po co ci do tego PHP? Od tego jest JS.

Btw, jak już podajesz kod, to z enterami i tabami...

Tym elemntom, którym chcesz coś podmienić nadajesz jakieś id, ew. klasę i potem zabawa w JS.
[JAVASCRIPT] pobierz, plaintext
  1. var img = document.getElementById('id');
  2. img.src = 'twoj_src';
[JAVASCRIPT] pobierz, plaintext

I będzie to uniwersalne jeżeli nadasz na tych wieli stronach tym samym elementom te same ID bądź klasę. A jeżeli z PHP chcesz przekazać jakąś zmienną, np. zawartość twoj_src to robisz to tak:
  1. $src = 'twoj_src';
  2. echo "<script>var mojSrc = '$src';</script>";
uczeń php
Chcialem to zrobic w LOCIE smile.gif a wiec pobierz strone znajdz odpowiednia sekcje gdzie jest sama tresc bez head bez title i <script type='text/javascript'> i bez tym podobnych plikow i innych pierdol, Nastepnie w tej oto czesci html gdzie jest artykul i fotki podmien te ktore sa mi potrzebne nastepnie, po czym zapisz je na bazie danych tworzac odpowiednia tabele gdzie nazwa tabeli odpowiada nazwie podstrony. oneeyedsmiley02.png
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.