Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie tytułu jednej strony na drugiej stronir.
Forum PHP.pl > Forum > PHP
moto0095
Witam. Szukam, szukam i znaleźdź nie mogę.
A więc mam sobie taki prościutki skrypt wyszukiwarki ale w wynikach szukania wyświetla się nazwa pliku.
A ja zrobić aby wyświetlały się <title></title> questionmark.gif questionmark.gif
kamil4u
Cytat
drógiej.

Brak słów...

A żeby dostać odpowiedź na swój temat radzę przeczytać to( http://rtfm.bsdzine.org/ ) i odpowiednio skorygować swój post(na razie nie wiadomo o co Ci chodzi).
moto0095
Okey postaram wyjaśnić jaśniej:
Powiedzmy że mamy dwa pliki index.php i galeria.php.
Zawartość index.php to:
  1. <HTML>
  2. <HEAD>
  3. /*-------->>*/<TITLE>Strona INDEX</TITLE>//<<--------
  4. </HEAD>
  5. <BODY>
  6. (...)
  7. </BODY>
  8. </HTML>


a galeria.php to:
  1. <HTML>
  2. <HEAD>
  3. /*-------->>*/<TITLE>Strona GALERIA</TITLE>//<<--------
  4. </HEAD>
  5. <BODY>
  6. (...)
  7. </BODY>
  8. </HTML>
  9.  


Mam sobie skrypt wyszukiwarki.
Oto ten skrypt wyświetla wyniki w postaci:
index.php
galeria.php

A ja chciałbym aby wyświetlał tak:
Strona INDEX
Strona GALERIA

I nie wiem jak to zrobić sad.gif
Proszę o pomoc.
tehaha
tak wnioskując z innych tematów, widzę że kolega po prostu uparł się na stronę opartą nie na bazie danych tylko na plikach tekstowych i dlatego z godziny na godzinę masz z tym problemy na które nigdzie nie ma odpowiedzi, na prawdę najlepiej gdybyś się przerzucił na bazę bo ona nie jest taka straszna, a bardzo ułatwia życie, tak byś sobie walnął prosty kod typu
  1. while($row = mysql_fetch_array($result)
  2. {
  3. echo $row['page_title'];
  4. }


i problem z głowy, a tak to to nie wiem chyba byś musiał przy pomocy funkcji file_get_contents() otworzyć każdy ten plik i funkcją preg_match pobrać zawartość między tagami <title></title> ale to na pewno będzie bardzo nie efektywne
moto0095
Ja wiem że baza nie jest taka straszna, i zawsze z nią pracuję, ale tak dla odmiany postanowiłem zrobić stronę tylko na plikach smile.gif
kamil4u
Już jest lepiej smile.gif
Ale nadal nie wiemy co to za wyszukiwarka i jak działa - na 99% właśnie tam musisz coś zmienić, a co, to zależy jak ona jest zrobiona.
Opisz zatem jak zrobiona jest ta wyszukiwarka(jak umiesz wybrać odpowiednie fragmenty to byłoby miło - analiza całości pewnie nie będzie należała do najprzyjemniejszych rzeczy smile.gif )
moto0095
I tak a propos mojej strony nad którą pracuję: to jest jedna z ostatnich żeczy jaka mi jest potrzebana winksmiley.jpg

Oczywiście. Wyszukiwarka pochodzi ze strony http://museum.webcity.pl/webcity/artykuly.php/t/31 winksmiley.jpg

Tylko tam niema pewnej rzeczy, a mianowicie $szukane = $_POST['szukane']; smile.gif
kamil4u
Mógłbyś zrobić sobie tablice typu: link -> tytuł strony i przed wyświetleniem podmienić link zgodnie z tą tablicą, jednak baza danych to najlepsze wyjście.

EDIT:
Cytat
żeczy

Radzę Ci przerwać chwilowo robienie stron, a poduczyć się polskiego, poczytać kilka książek, na pewno wyjdzie Ci to na zdrowie. Uwierz, że notoryczne błędy ort. na stronie są bardzo irytujące dla użytkownika(czytelnika).

EDIT @down:
Przeczytasz kilka książek to zapamiętasz pisownie słów na całe życie. Poza tym w XXI wieku nie ma usprawiedliwienia dla błędów ortograficznych(w internecie): zawsze możesz wrzucić tekst do word-a lub darmowego open office-a, który sprawdzi Ci błędy. Nie mówiąc już o dodatkach dla przeglądarek.. - http://www.hotfix.pl/articles.php?article_id=122
moto0095
Wiem, wiem i przepraszam, no wiecie dyslektyk sad.gif

EDIT:
Akurat ja dużo czytam winksmiley.jpg

A czy mógł byś podać jakiś przykład kamilu4u questionmark.gif

Ja zawsze korzystam z firefoxa a on poprawia błędy a teraz akurat piszę w IE winksmiley.jpg
tehaha
  1. $title_array = array
  2. (
  3. 'galeria.html' => 'Galeria strony i cały tam tytuł',
  4. 'index.html' => 'Strona główna strony i cały tam tytuł'
  5. }
  6.  
  7. echo $title_array[galeria.html];


P.s mi tam od razu w edytorze podkreśla na czerwono jak zrobię błąd ortograficzny:D
moto0095
A nie ma jakieś innej możliwości bo tak to do każdego pliku będę musiał robić opis??


P.s. Mi właśnie podkreśla w FF a w IE nie winksmiley.jpg
kamil4u
Cytat
A nie ma jakieś innej możliwości bo tak to do każdego pliku będę musiał robić opis??

Użyj bazy danych lub zrób tak jak już ktoś Ci powiedział użyj wyrażeń regularnych i wybierz odpowiedni tytuł(nie polecam)
tehaha
chciałeś stronę na plikach tekstowych to się męcz guitar.gif
moto0095
Wiem, ja 100 razy bardziej wolę bazę ale jak już zacząłem to skończę.

Już chyba wiem jak to zrobię :
<title></title> będzie zawsze w linii np 5
podzielę plik na linie i wyświetlę tylko linię nr 5 bez znaczników HTML
tehaha
pisałem Ci żebyś lepiej użył preg_match(), bo to trochę bez sensu
MateuszS
  1. <?
  2. $string = "<title>Strona GLOWNA</title>"; //musisz jakos sobie pobrac tresci plikow php
  3. preg_match_all('#<title>Strona (.*?)</title>#', $string, $wynik);
  4. echo $wynik[1][0];
  5.  
  6. ?>
moto0095
Coś nie chce działać sad.gif
Dane z pliku pobrałem tak : file_get_contents('folder/plik.php');
tehaha
pokaż więcej kodu, bo tak to nie wiadomo co zrobiłeś
moto0095
Tyle wystarczy questionmark.gif
  1. $string = file_get_contents($katalog.$plik);
  2. preg_match_all('#<title>Strona (.*?)</title>#', $string, $wynik);
  3. $trafienia[] = "<a href='" . $katalog . $plik . "'>" . $wynik[1][0] . "</a><br />";
tehaha
po pierwsze sprawdź czy strona zostaje pobrana daj echo $string, jeżeli tak to daj print_r($wynik) żeby zobaczyć czy wyrażenie znajduje cokolwiek, jeżeli strona jest pobierana a skrypt utykana wyrażeniu to spróbuj wykasować z niego "Strona", tak żeby pobierała tylko zawartość między tagmi title
moto0095
I nic się nie wyświetla sad.gif
tehaha
wejdź do manula http://php.net/manual/en/function.file-get-contents.php i zobacz jak tam są linki może źle link skonstruowałeś, jeśli się nie uda dalej to spróbuj podać cały url razez z http://
moto0095
Strona się pobiera.
A wynik print_r to :
Array ( [0] => Array ( ) [1] => Array ( ) ) tekst Array ( [0] => Array ( ) [1] => Array ( ) )
tehaha
a spróbuj z
  1. preg_match_all('<title>(.*?)</title>', $string, $wynik);
jak się nie uda to rano się pomyśli ja lecęsmile.gif
moto0095
Przeczytałem, http:// też patrzyłem i cały czas nic sad.gif

YES. Działa WIELKIE WIELKIE DZIĘKI WSZYSTKIM smile.gif

p.s. sorrki za te błędy ort.

Aha tylko musi byś tak:
  1. preg_match_all('#<title>(.*?)</title>#', $string, $wynik);
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.