Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Jak odczytać tytuł strony?
Forum PHP.pl > Forum > Przedszkole
ilder
W jaki sposób można (i czy można) odczytać tytuł strony? czyli to co znajduje się pomiędzy znacznikami <title></title>?
Próbowałem już wielu sposobów i nic nie chciało działać.

Z góry dzięki za pomoc.
in5ane
Po co Ci to? Przecież tytuł strony masz w nagłówku przeglądarki.
Hazel
Jak chcesz to "odczytać"?
Możesz to zawsze w zmiennej zapisać, tylko po co? I w ogóle, o co Ci chodzi?
envp
preg_match()
Hazel
Wybacz, ale nie zrozumiałem...
Co ma preg_match() do problemu?
Aż tak cieżko kapujący jestem?
Równie dobrze mógłbym napisać:

mysql_unbuffered_query()

i związek byłby taki sam, jak mi sie wydaje tongue.gif
Wieviór
Jest jeszcze jeden sposób - spojrzeć na taki (zazwyczaj niebieski) pasek u góry koło ikonki przeglądarki (Firefox, Opera ew. Explorer) i przeczytać ;]
TomASS
Kiedyś już o tym pisałem tongue.gif Wystarczyło poszukać smile.gif
  1. <?php
  2. $html = @file_get_contents($location);
  3. if (preg_match ('/<title>(.*?)</title>/is', $html, $match) == false) return false;
  4. else $title = $match['1'];
  5. ?>
kurdak
Określ czy chcesz odczytać tytuł ze strony czy odczytać go z bazy danych i wpisać w miejsce tytułu.
Hazel
Dokładnie, i popraw tytuł topiku, bo nie wiem czemu moderatorzy śpią tongue.gif
Zasady masz tutaj.
Cysiaczek
@hazel - chciałbys tongue.gif

@ilder
1. Popraw proszę tytuł‚ topiku na zgodny z zasadami forum Przedszkole

2. Możesz też spróbować poprzez DOM
  1. title = document.title;


Pozdrawiam.
envp
Cytat
Wybacz, ale nie zrozumiałem...


A to już nie moja wina smile.gif
Hazel
Sprzeczałbym się...
Jak TomASS napisał, o co chodziło, to jakoś zrozumiałem dry.gif
Kwestia przekazu - trochę lenistwo Cię zjadło w poprzednim poście dry.gif
A wina leży pośrodku.

Btw, koleś zadał pytanie i dam głowę, ze od tamtej pory nie był na forum i olał sprawę, a topik kwitnie od nikomu niepotrzebnych postów w stylu $this... tongue.gif
ilder
Zaglądam tylko nie mam czasu na zastosowanie porad. Ale wielkie dzięki za pomoc. Jutro przeczytam dokładnie i przetestuję porady.
Cysiaczek
Porady poradami, ale temat mogłeś poprawić...
Zamykam i otworzę po skontaktowaniu się ze mna (lub innym moderatorem) poprzez PM.

Pozdrawiam.
ilder
Dokładnie chodzi o to, że używam CMSa Joomla i tytuł jest sklejany z różnych elementów. I chciałem zrobić tak, że w nagłówku <h1> pojawia się ta sama treść co w <title>. Użyłem do tego poniższego fragmentu kodu:

  1. <?php
  2. $menu = $mainframe->get( 'menu' );
  3. $pagetitle = '';
  4. $pagetitle = $menu->name;
  5. echo '<h1>';
  6. echo $pagetitle;
  7. echo '&nbsp;</h1>';
  8. ?>


Niestety kod ten nie działa przy komponencie SOBI2 i nic się nie wyświetla. To jest mój główny komponent.

@TomASS
Niestety kod ten nie działa. Ląduje w return false
A jeżeli pozbędę się if:

  1. <?php
  2. $html = @file_get_contents($location);
  3. preg_match ('/<title>(.*?)</title>/is', $html, $match);
  4. $title = $match['1'];
  5. echo $title;
  6. ?>

to na stronie mam całkowicie pusto w miejscu kodu.

@kurdak
Wydaje mi się, że prościej byłoby odczytywać <title> ze strony.

@Cysiaczek
spróbowałem wykonać:

  1. <?php
  2. $title = document.title;
  3. echo $title;
  4. ?>

efektem był tekst: documenttitle
bez kropki
czy żeby DOM mi działał coś muszę doinstalowywać?
Hazel
Jeśli chodzi Ci o coś takiego, to rację miał Cysiaczek.
A że pomieszałeś JS z PHP, to Ci wyświetla jakieś bzdury.
Prawidłowy kod:
  1. <script type="text/javascript">
  2. var tytul = document.title;
  3. document.write('<h1>' + tytul + '</h1>');


Chyba nigdy w JS nie pisałeś?
Pozdrawiam.
ilder
dzięki Hazel
rzeczywiście pomieszałem PHP z JS bo i niedużo piszę i wyłącznie na własne potrzeby
raczej zajmuję się e-marketingiem

nie chciałbym jednak stosować rozwiązania które podałeś, bo nie wiem czy prawidłowo zareaguje Google na taki <h1>
wolałbym wykonać to po stronie serwera tylko nie wiem czy jest to możliwe?
Hazel
Oczywiście, że się da.
  1. <?php
  2. $tytul = '<script type="text/javascript">document.write(document.title);</script>';
  3. ?>


added: jeżeli o to chodzi.
ilder
Moje zachwycenie było tylko chwilowe. Niestety kod jest dalej nie do przyjęcia. W źródle mam to samo:
  1. <h1><script type="text/javascript">document.write(document.title);</script>&nbsp;</h1>


Czy nie ma jakiejś zwykłej zmiennej lub tablicy, która przechowuje tytuł strony?
Kod JS raczej jest nieczytelny dla Google.

--------------------------------

Albo inaczej:
Wiem, w którym miejscu jest tworzony <title>. Jest to inny plik. Czy można jakoś jednorazowo zdefiniować zmienną globalną, która będzie istniała w każdym przetwarzanym pliku? Umieściłbym w nim <title> i nie byłoby problemu.
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.