Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tablica..
Forum PHP.pl > Forum > PHP
kajzur
Witam, mam problem.. Mam taką tablice:

Kod
Array
(
    [0] => Array
        (
            [0] => http://www.pierwszemiejsce.pl/
            [1] => http://www.comweb.com.pl/
            [2] => http://www.forum.optymalizacja.com/
            [3] => http://pozycjonowanie.pl/
            [4] => http://www.e-arteria.pl/
        )

    [1] => Array
        (
            [0] => PierwszeMiejsce.pl :: Skuteczne Pozycjonowanie Stron
            [1] => ComWeb: pozycjonowanie stron - TANIO - pozycjonowanie stron ...
            [2] => Pozycjonowanie i Optymalizacja - SEO Forum, Hosting, Webhosting ...
            [3] => Pozycjonowanie.pl
            [4] => Arteria - Skuteczne Pozycjonowanie stron www w wyszukiwarkach ...
        )

    [2] => Array
        (
            [0] => Skuteczne pozycjonowanie - Infolinia: 0801 000 605. Pozycjonowanie i optymalizacja stron. Lata doświadczeń, setki klientów.
Kontakt - Oferta - Ile inwestujesz - Gwarancja
            [1] => Skuteczne pozycjonowanie i tworzenie stron - 9 lat doświadczenia! W ofercie pozycjonowanie jednorazowe dla haseł mniej konkurencyjnych i stałe dla trudnych ...
            [2] => Pozycjonowanie stron internetowych. Pozycjonowanie i Optymalizacja Forum - Pozycjonowanie i optymalizacja stron internetowych. Otwarta rozmowa na temat ...
Google - Dla początkujących - Ogłoszenia i Zlecenia
            [3] => Witamy nowych użytkowników Pozycjonowanie.pl, przedstaw się tutaj i napisz czym się zajmujesz i ... Pozycjonowanie, promocja serwisów, spamowanie, narzędzia ...
            [4] => Jeżeli pozycjonowana strona w czasie trwania umowy nie znajdzie się na ustalonej pozycji za jej pozycjonowanie nie pobieramy żadnych opłat ! ...
        )

)


Jak ja mogę ją sensownie wyświetlić? Chodzi mi o plik xml:

  1.  
  2. <?xml version="1.0" encoding="iso-8859-2" ?>
  3. <pages>
  4. <page>
  5. <link>Tutaj wartosci z $pages[0]</link>
  6. <title>Tutaj wartosci z $pages[1]</title>
  7. <desc>Tutaj wartosci z $pages[2]</desc>
  8. </page>
  9. <page>
  10. <link>Tutaj wartosci z $pages[0]</link>
  11. <title>Tutaj wartosci z $pages[1]</title>
  12. <desc>Tutaj wartosci z $pages[2]</desc>
  13. </page>
  14.  
  15. </pages>
I tak dalej.. próbowałem różnych dziwnych pętl, np:

  1. echo '<?xml version="1.0" encoding="iso-8859-2" ?><pages>';
  2.  
  3.  
  4.  for($i=0; $i<count($pages); $i++) // double loop for recive data
  5.  {
  6.  
  7.  echo '<page>';
  8.  
  9.     foreach($pages[$i] as $value)
  10.      {
  11.        
  12.        echo '<link>'.$value.'</link>';
  13.        
  14.        
  15.            foreach($pages[$i] as $value)
  16.              {
  17.                
  18.                echo '<title>'.$value.'</title>';
  19.            
  20.                
  21.                        foreach($pages[$i] as $value)
  22.                      {
  23.                        
  24.                        echo '<desc>'.$value.'</desc>';
  25.                    
  26.                        
  27.                      }
  28.                
  29.              }
  30.        
  31.      }
  32.      
  33.      echo '</page>';
  34.  }
  35.  echo '</pages>';
Rzecz jasna nie działa jak powinno.. Proszę o pomoc. Pozdrawiam smile.gif
Fifi209
Tablica jest źle wygenerowana, dlatego masz z tym kłopot.
dotangelo
Musisz przepisać tablicę.
Kod
$count = count($t1[0]); //zakladamy ze wszystkie 3 tablice maja taki sam rozmiar

for ($i = 0; $i < $count; ++$i){
$newArray[] = array('title' => $t1[0][$i], 'desc'=> $t1[1][$i], 'url'=>$t1[2][$i]);
}
kajzur
Teraz mam tak:
Kod
Array
(
    [link] => Array
        (
            [0] => http://www.pierwszemiejsce.pl/
            [1] => http://www.comweb.com.pl/
            [2] => http://www.forum.optymalizacja.com/
            [3] => http://pozycjonowanie.pl/
            [4] => http://www.e-arteria.pl/
        )

    [title] => Array
        (
            [0] => PierwszeMiejsce.pl :: Skuteczne Pozycjonowanie Stron
            [1] => ComWeb: pozycjonowanie stron - TANIO - pozycjonowanie stron ...
            [2] => Pozycjonowanie i Optymalizacja - SEO Forum, Hosting, Webhosting ...
            [3] => Pozycjonowanie.pl
            [4] => Arteria - Skuteczne Pozycjonowanie stron www w wyszukiwarkach ...
        )

    [desc] => Array
        (
            [0] => Skuteczne pozycjonowanie - Infolinia: 0801 000 605. Pozycjonowanie i optymalizacja stron. Lata doświadczeń, setki klientów.
Kontakt - Oferta - Ile inwestujesz - Gwarancja
            [1] => Skuteczne pozycjonowanie i tworzenie stron - 9 lat doświadczenia! W ofercie pozycjonowanie jednorazowe dla haseł mniej konkurencyjnych i stałe dla trudnych ...
            [2] => Pozycjonowanie stron internetowych. Pozycjonowanie i Optymalizacja Forum - Pozycjonowanie i optymalizacja stron internetowych. Otwarta rozmowa na temat ...
Google - Dla początkujących - Ogłoszenia i Zlecenia
            [3] => Witamy nowych użytkowników Pozycjonowanie.pl, przedstaw się tutaj i napisz czym się zajmujesz i ... Pozycjonowanie, promocja serwisów, spamowanie, narzędzia ...
            [4] => Jeżeli pozycjonowana strona w czasie trwania umowy nie znajdzie się na ustalonej pozycji za jej pozycjonowanie nie pobieramy żadnych opłat ! ...
        )

)


Plik XML już mam..
  1. echo '<?xml version="1.0" encoding="iso-8859-2" ?><pages>';
  2. for($i=0; $i<= $count; $i++)
  3. {
  4. echo '<page>';
  5. echo '<link>'.$pages['link'][$i].'</link>';
  6. echo '<title>'.$pages['title'][$i].'</title>';
  7. echo '<desc>'.$pages['desc'][$i].'</desc>';
  8. echo '</page>';
  9. }
  10. echo '</pages>';

Dziękuję za pomoc!



PS. Jak mogę wywalić linki? Mam kilka w tablicy $pages['desc'], próbowałem napisać wyrażenie ale nie jestem w tym najlepszy..

  1. <?php
  2. foreach($pages['desc'] as $dsc)
  3. {
  4.  
  5. preg_replace('@<a href="(.*)">(.*) </a>@', '', $dsc);
  6.  
  7. }
  8. ?>
TrevorGryffits
Sprawdź, czy ruszy:
  1. <?php
  2. foreach($pages['desc'] as $key => $dsc)
  3. {
  4.  
  5. $pages['desc'][$key] = preg_replace('@<a href=".*?">.*?</a>@', '', $dsc);
  6.  
  7. }
  8. ?>
kajzur
Nie ma błędu, ale nie wywala linków..
Fifi209
  1. <?php
  2.  
  3.    $tekst = '
  4.    TUtja <a href="asdfsadfsadf.php">kupa</a> asfdasd fasdf sa<a href="asdfsadf.php?asdf=sdf">jh8h9s</a>asfdgasf
  5.    ';
  6.    
  7.    preg_match_all('/<a href="([^\"]+)">([^<]+)</a>/', $tekst, $matches, PREG_PATTERN_ORDER);
  8.    
  9.    echo '<pre>';
  10.        print_r($matches);
  11.        
  12.    echo '</pre>';
  13.    
  14. ?>
osl
jeśli są to linki ze strony, mogą mieć trochę więcej atrybutów niż tylko "href" i dlatego może nie działać.
wstaw te pare linków w wersji źródła html...
kajzur
  1. $count = count($pages['title']);
  2.  
  3. foreach($pages['desc'] as $key => $dsc)
  4. {
  5.  
  6. $pages['desc'][$key] = preg_replace('/<a href="([^\"]+)">([^<]+)</a>/','', $dsc);
  7.  
  8. }
  9.  
  10. echo '<?xml version="1.0" encoding="iso-8859-2" ?><pages>';
  11. for($i=0; $i<= $count; $i++)
  12. {
  13. echo '<page>';
  14. echo '<link>'.$pages['link'][$i].'</link>';
  15. echo '<title>'.$pages['title'][$i].'</title>';
  16. echo '<desc>'.$pages['desc'][$i].'</desc>';
  17. echo '</page>';
  18. }
  19. echo '</pages>';


Tak to wygląda, tylko że teraz kasuje tak jakby całą tablice $pages['desc'].. Nie wyświetla wogóle z tej tablicy danych..

Tak wygląda link jeden, jest ich koło 8..

<a href="/url?q=http://www.pierwszemiejsce.pl/kontakt.php&amp;ei=sr9pSvP0HpHbjQfHssW2Cw&amp;sa=X&amp;oi=oneline_sitelinks&amp;resnum=1&amp;ct=result&amp;cd=1&amp;usg=AFQjCNHmAW613r_X213woPODamP8AL7bLA" >Kontakt</a>
Fifi209
  1. <?php
  2. $tekst = '
  3.    TUtja <a href="asdfsadfsadf.php">kupa</a> asfdasd fasdf sa<a href="asdfsadf.php?asdf=sdf">jh8h9s</a>asfdgasf
  4.    ';
  5.    
  6.    echo preg_replace('/<a href="[^\"]+">[^<]+</a>/', '', $tekst);
  7. ?>


Przerobiony mój poprzedni przykład. Działa - testowałem.
kajzur
Kod
foreach($pages['desc'] as $key => $dsc)
{

$pages['desc'][$key] = preg_replace('/<a href="[^\"]+">[^<]+</a>/','', $dsc);

}


PRzy takiim kodzie dostaję kilkanaście błędów: Warning: preg_replace() [function.preg-replace]: Unknown modifier 'a' in /home/xx/domains/xxx/public_html/xxx/test.php on line 33

a linia 33 to $pages['desc'][$key] = preg_replace('/<a href="[^\"]+">[^<]+</a>/','', $dsc);
osl
trzeba pewnie "wyescejpować" smile.gif
<\/a> zamiast </a>
kajzur
Nie ma błędu, ale teraz nadal są linki ;>
Fifi209
Cytat(kajzur @ 24.07.2009, 15:26:26 ) *
Nie ma błędu, ale teraz nadal są linki ;>


pokaż przerobiony kod, bo z fusów trudno się wróży.
kajzur
  1. $count = count($pages['title']);
  2.  
  3. foreach($pages['desc'] as $key => $dsc)
  4. {
  5.  
  6. $pages['desc'][$key] = preg_replace('/<a href="[^\"]+">[^<]+</a>/','', $dsc);
  7.  
  8. }
  9.  
  10. echo '<?xml version="1.0" encoding="iso-8859-2" ?><pages>';
  11. for($i=0; $i<= $count; $i++)
  12. {
  13. echo '<page>';
  14. echo '<link>'.$pages['link'][$i].'</link>';
  15. echo '<title>'.$pages['title'][$i].'</title>';
  16. echo '<desc>'.$pages['desc'][$i].'</desc>';
  17. echo '</page>';
  18. }
  19. echo '</pages>';
Fifi209
Już wiem co nie grało. winksmiley.jpg

Daj tak:
Kod
/<a href="[^\"]+"[ ]?>[^<]+<\/a>/
kajzur
Wielkie dzięki, czas najwyższy abym zaczął się uczyć tych wyrażeń.. Ale coś ciężko idzie. Ale wielkie dzięki za pomoc!
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.