Skocz do zawartości

Meta tagi.


Tomahawk

Rekomendowane odpowiedzi

Witam!

Mam tak zaprojektowaną stronę że w adresie jest przesyłana zmienna i w zależności od jej wartości includowana jest odpowiednia treść (plik php), ale bez meta tagóe. Meta tagi są w głównym index.php.

Chciałem teraz zrobić coć takiego żeby na każdej podstronie jest inny tytuł.

Np. mam jakieś artykuły. Klikam w link jakiegoś artykułu i otwiera mi się index.php z zaincludowanym plikiem artykul.php w którym jest zapytanie do bazy o tytuł i treść artykułu i właśnie chciałbym żeby tytuł artykułu znalazł się w sekcji head w tytule strony przyczym sekcji head niema w pliku artykul.php a jest w index.php.

Tak jest w qlweb'ach ze jak się klika np. w kategorie hobby to w podstronie z podkategoriami w title jest hobby.

Najłatwiej byłoby chyba w każdym includowanym pliku wkleić sekcje head ale sporo tych plików jest...

Pewnie będę musiał gruntowanie przerobić układ, no ale cóż lepiej raz a dobrze.

No cóż mam nadzieje że są tu jacyś starzy wyjadacze php i wiedzą jak zaprojektować stronę żeby było najlepiej.

Odnośnik do komentarza
Udostępnij na innych stronach

<?php

$sFile = file_get_contents( $_GET[ 'x' ] );

preg_match( '@<title>(.*?)</title>@si', $sFile, $aTitile );

$sTitle = $aTitle[ 1 ];

echo '<title>'.$sTitile.'</title>';

?>

I w każdym tagu, umieszczasz to co zechcesz. Reszta meta tagów, content analogicznie do powyzszego przykładu.

stopka usunieta z wpoodu wirusa na stronie docelowej

Odnośnik do komentarza
Udostępnij na innych stronach

Może zrób to sobie na szablonach? np. smarty. Potem będziesz mógł "z palca" zmieniać ukłąd, jak już przerabiać to raz a porządnie.

Albo mam jeszcze inny pomysł, tzn. modyfikacja w 5 minut.

W pliku index.php umieszczasz coś takiego <title>##D_TYTUL##</title>

na początku index.php:

ob_start();

na końcu index.php

global $TYTUL;
if (!isset($TYTUL))
  $TYTUL = 'Tutaj tytuł domyślny';
echo str_replace("##D_TYTUL##", $TYTUL, ob_get_contents());
ob_clean();

w includowanym pliku z treścią:

global $TYTUL;
$TYTUL = zapytanie_do_bazy(...);

Odnośnik do komentarza
Udostępnij na innych stronach

@MMP

Ech funkcje rozumię.

Ale skąd mam wiedzieć jak to działą jak niewiem co jest w zmiennej $_GET['x']?

W moim przypadku w zmiennej Get przesyłam rzecz jasna id artykułu więc nie wydaje mi się żeby id składało się z tagów title :rotfl:

@slawek22

A co to są smarty?

I który sposób jest najlepszy?

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem który najlepszy, jeśli zależy ci na czasie to pewnie któryś z tych dwóch sposobów. Jeśli chcesz mieć napisane przejrzyście i mieć łatwość modyfikacji to oczywiście szablony...

Tytaj jest wszystko: https://www.webdeveloper.pl/szablony___pros...227,1,1,pl.html

Albo na stronie smarty: smarty.php.net

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...

Ja kiedyś zrobiłem coś takiego (a na php sie za bardzo nie znam, więc sposób musi być prosty):

Założyłem plik tytul.php, a w nim:

$tytul['id1']=' treść-1'
.....
.....
$tytul['id99']='treść-99'

if (isset($_GET['adres'])) $adres=$_GET['adres'];
else $adres='';
if (isset($tytul[$adres]))
echo("$tytul[$adres]");
else
echo($tytul['id1']);

Gdzie "treść" oznacza to, co chcesz by się ukazało w sekcji head - może to być sam tytuł albo cały blok title, description itd.

id1... id99 to jest to co przesyłasz parametrem Get

I potem w index.php, w sekcji head dołączasz plik title.php przy pomocy include.

U mnie działało bez zarzutu. ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Np. mam jakieś artykuły. Klikam w link jakiegoś artykułu i otwiera mi się index.php z zaincludowanym plikiem artykul.php w którym jest zapytanie do bazy o tytuł i treść artykułu i właśnie chciałbym żeby tytuł artykułu znalazł się w sekcji head w tytule strony przyczym sekcji head niema w pliku artykul.php a jest w index.php.
Z pliku artykul.php przenieś do pliku index.php zapytanie do bazy.

Nie znam się na pozycjonowaniu, ja tu tylko zużywam transfer i miejsce w sql.

Roman Kluska ujawnia: nadchodzi INFLACYJNY ARMAGEDON!

 

Wielki Elektronik

Odnośnik do komentarza
Udostępnij na innych stronach

W czym to przeszkadza? W pliku index.php zapewne musi być spełniony warunek żeby był includowany odpowiedni plik, więc jeżeli jest spełniony to pobierasz z bazy dane dla tego pliku w innym przypadku nie. Jest spełniony określony warunek, pobierasz z bazy potrzebne dane, wstawiasz w tagi, w includowanym pliku robisz global $dane; i powinno wszystko działać.

Nie znam się na pozycjonowaniu, ja tu tylko zużywam transfer i miejsce w sql.

Roman Kluska ujawnia: nadchodzi INFLACYJNY ARMAGEDON!

 

Wielki Elektronik

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności