Bielack Opublikowano 25 Czerwca 2008 Udostępnij Opublikowano 25 Czerwca 2008 Witam, próbuje zbudować swój własny, przyznam - dosyć prymitywny spamik. Mam do dyspozycji katalog z mnóstwem plików *.html o różnych (bardzo różnych) tytułach: raz jest to słowo, innym razem dwa słowa a czasami rząd cyfr i liter. Zbudowałem sobie prosty szablon, który ma w centralnym miejscu wyświetlać zawartość strony z tego katalogu za pomocą funkcji którą podpatrzyłem na jakiejśc stronie: <?php $p = $_GET['p']; if(!empty($p)) { if(is_file("pages/$p.php")) include "pages/$p.php"; else echo "<br /><h2>404 błąd!</h2><p>strona nie istnieje</p>"; } elseif(!empty($p)) { } else include "pages/start.php"; ?> Teraz kolej na menu - w sidebarze mam listę z linkami w postaci: <li><a href="index.php?p=woweca3">woweca3</a></li> <li><a href="index.php?p=1002b">1002b</a></li> <li><a href="index.php?p=in808">in808</a></li> Mój problem polega na tym, że nie potrafię zrobić tak, by do tej listy pobierało się losowo powiedzmy 20 pozycji z katalogu z plikami, gdzie link byłby w formacie index.php?p=losowy-plik (bez końcowego rozszerzenia) a anchorem zostawałby tytuł pliku (lub pierwsze 20 znaków tytułu). Nie wspominam o dynamicznych metatagach, bo to już kompletnie nie wiem jak budować, ale może takie losowo pobierane menu jest sprawą na tyle prostą, że któryś z Kolegów mi pomoże? Będę ogromnie wdzięczny - moja baza nie ma co prawda takiego potencjału jak kopie wiki, ale kto wie jak się będzie indeksować, bo teksty mam raczej unikalne. pozdrowienia Dla tych, co lubią zdjęcia planet: Planety i ich zdjęcia, dla tych, co lubią katalogi stron: Podwójny katalog stron. Albo Idź do diabła. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
abc Opublikowano 25 Czerwca 2008 Udostępnij Opublikowano 25 Czerwca 2008 wyrazeniem regularnym wytnij to co masz po = i juz masz anchor Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
EDDY Opublikowano 25 Czerwca 2008 Udostępnij Opublikowano 25 Czerwca 2008 Najprościej będzie, tak jak poradził abc. Zawsze możesz losować anchory ze słownika. 50 kB starczy w zupełności. Polecam linki stałe w Seomatik.pl oraz dopalacz stron Gotlink.pl. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bielack Opublikowano 25 Czerwca 2008 Autor Udostępnij Opublikowano 25 Czerwca 2008 Dziękuję za sugestie. Chętnie bym się zastosował do Waszych wskazówek, lecz po prostu nie potrafię. Jesli chodzi o kod php, to tylko zaznacz/skopiuj/wklej/zmień na swoje. Aż się sam złoszczę, ale jakoś nauka tego mi nie idzie. A zanim "wytnę wyrażeniem regularnym to, co mam po znaku =" muszę takie linki stworzyć - z pobranych losowo plików z katalogu. Jak się za to zabrać? ;-) pozdrowienia Dla tych, co lubią zdjęcia planet: Planety i ich zdjęcia, dla tych, co lubią katalogi stron: Podwójny katalog stron. Albo Idź do diabła. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Qbexus Opublikowano 25 Czerwca 2008 Udostępnij Opublikowano 25 Czerwca 2008 $klucze=(glob("*/*.html")); Generalnie funkcja "glob()" ten przykład powinien dać tablicę ze wszystkimi nazwami plików we wszystkich podkatalogach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
stat4seo Opublikowano 25 Czerwca 2008 Udostępnij Opublikowano 25 Czerwca 2008 tu też poprawione: <?php $dir='cache'; // bez slash $handle=opendir($dir); while (false !== ($file = readdir($handle))) { $files[]=$file; } shuffle($files); for($i=0;$i<20;$i++) { $plik=$dir.'/'.$files[$i]; $name=substr($files[$i] , '0' , '-5'); $txt=file_get_contents($plik); $wyrazenie='/<title>([^<]+)<\/title>/i'; preg_match_all((trim($wyrazenie)),$txt, $wynik, PREG_PATTERN_ORDER); $title=$wynik[1][0]; echo '<li><a href="index.php?p='.$name.'">'.$title.'</a></li>'; } ?> Nie wiem tylko, o jakich tytułach tych plików mówisz...zrobione jest pod <title>*</title> ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bielack Opublikowano 25 Czerwca 2008 Autor Udostępnij Opublikowano 25 Czerwca 2008 Niestety, nie działa. Localhost pokazuje taki błąd: Parse error: syntax error, unexpected T_VARIABLE in D:\Homepage\_testy\sidebar.php on line 10 a w linii 10 sidebara jest dokładnie ten fragment; $handle=opendir($dir); Załadowałem to na serwer i tam nie pokazuje się błąd, ale po prostu urywa generowanie tuż na początku sidebara. Może coś przeoczyłem? Zmieniłem katalog z $dir='katalog/' na $dir='pages/' bo tak się nazywa katalog z plikami. Wiadomo, że lokalnie ma wszystkie prawa, na serwerze zdalnym dałem 755 (sugeruję sie tym "opendir"). pozdrowienia Dla tych, co lubią zdjęcia planet: Planety i ich zdjęcia, dla tych, co lubią katalogi stron: Podwójny katalog stron. Albo Idź do diabła. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
stat4seo Opublikowano 25 Czerwca 2008 Udostępnij Opublikowano 25 Czerwca 2008 Proszę, sporo błędów było : <?php $dir='cache'; // bez slash $handle=opendir($dir); while (false !== ($file = readdir($handle))) { $files[]=$file; } shuffle($files); for($i=0;$i<20;$i++) { $plik=$dir.'/'.$files[$i]; $name=substr($files[$i] , '0' , '-5'); $txt=file_get_contents($plik); $wyrazenie='/<title>([^<]+)<\/title>/i'; preg_match_all((trim($wyrazenie)),$txt, $wynik, PREG_PATTERN_ORDER); $title=$wynik[1][0]; echo '<li><a href="index.php?p='.$name.'">'.$title.'</a></li>'; } ?> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bielack Opublikowano 25 Czerwca 2008 Autor Udostępnij Opublikowano 25 Czerwca 2008 O! Panie kolego - działa! Co prawda pojawia sie niewiedzieć czemu czasami taki zonk: Warning: file_get_contents(pages/.) [function.file-get-contents]: failed to open stream: Permission denied in D:\Homepage\_testy\sidebar.php on line 20 gdzie linia 20 to: $txt=file_get_contents($plik); ale generalnie menu się generuje i jest klikalne. Wspaniale! Idę stawiać spamik, a Ty podeślij na PW link i anchor na jaki mam wystawić podziękowania na pajmon.com ;-) pozdrowienia Dla tych, co lubią zdjęcia planet: Planety i ich zdjęcia, dla tych, co lubią katalogi stron: Podwójny katalog stron. Albo Idź do diabła. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
qwertyuiop Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 BTW. Powalcz z bezpieczeństwem aplikacji bo na: $p = $_GET['p']; include "pages/$p.php"; daleko nie zajedziesz "Dopiero gdy wolna wola znowu zaskoczyła, przerwali bieg po torze przeszkód ich własnej konstrukcji." Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
stat4seo Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 Pw poszło Tutaj powinno być już bez błędu : <?php $dir='cache'; // bez slash $handle=opendir($dir); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") $files[]=$file; } shuffle($files); for($i=0;$i<20;$i++) { $plik=$dir.'/'.$files[$i]; $name=substr($files[$i] , '0' , '-5'); $txt=file_get_contents($plik); $wyrazenie='/<title>([^<]+)<\/title>/i'; preg_match_all((trim($wyrazenie)),$txt, $wynik, PREG_PATTERN_ORDER); $title=$wynik[1][0]; echo '<li><a href="index.php?p='.$name.'">'.$title.'</a></li>'; } ?> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.