| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
aquatinta Mitglied
|
Titel auslesen und verlinkt -aber gekürzt-auf Seite ausgeben |
|
|
Hallo,
ich habe das Script im Einsatz,
http://www.homepage-total.de/php/schreiben_lesen_2.php?seite=1
welches als Sitemap die "Titel" der Seiten ausliest und auch ausgezeichnet funktioniert :-)
| Code: |
<?php
// Verzeichnisname angeben
$verzeichnisname = "daten";
// Öffnet das Verzeichnis
$verzeichnis = openDir($verzeichnisname);
// Verzeichnis lesen
while ($file = readDir($verzeichnis)) {
// Dateityp filtern
if (strstr($file, ".php")) {
// Datei zum lesen öffnen
$datei = fOpen($verzeichnisname . "/" . $file, "r");
// 1000 Zeichen lesen
$inhalt = fRead($datei, 1000);
// Datei schließen
fClose($datei);
// Titelnamen extrahieren
preg_match("/<title>(.*?)</i" , $inhalt , $titel);
// Link erstellen
echo "<a href=\"$file\">$titel[1]</a><br>\n";
unset($titel[1]); // Variable löschen
}
}
closeDir($verzeichnis); // Verzeichnis schließen
?>
|
Nun sind die Titel nach dem folgenden Schema geschrieben:
| Code: |
<title>Firma ABC - Aktuelles - </title>
<title>Firma ABC - Schach-Unterricht - </title>
<title>Firma ABC - Impressum - </title>
usw.
|
Nun möchte ich gern die Zeichen "Firma ABC" und die "-" vor und nach (nicht die zwischen) den Titeln entfernen,
und weiß nicht wie. :-(
Vielleicht hat jemand eine Lösung?
MfG
Christian |
|
|
|
| 12 Feb 2010 04:15 |
|
  |
Werner Homepage-Total.de Moderator

|
 |
|
|
Hier eine mögliche Lösung:
| PHP-Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <?php
// Verzeichnisname angeben
$verzeichnisname = "daten";
// Öffnet das Verzeichnis
$verzeichnis = openDir($verzeichnisname);
// Verzeichnis lesen
while ($file = readDir($verzeichnis)) {
// Dateityp filtern
if (strstr($file, ".php")) {
// Datei zum lesen öffnen
$datei = fOpen($verzeichnisname . "/" . $file, "r");
// 1000 Zeichen lesen
$inhalt = fRead($datei, 1000);
// Datei schließen
fClose($datei);
// Titelnamen extrahieren
preg_match("/<title>(.*?)</i" , $inhalt , $titel);
$titel[1] = str_replace("Firma ABC - ", "", $titel[1]);
$titel[1] = str_replace(" - ", "", $titel[1]);
// Link erstellen
echo "<a href=\"$file\">$titel[1]</a><br>\n";
unset($titel[1]); // Variable löschen
}
}
closeDir($verzeichnis); // Verzeichnis schließen
?> |
|
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 12 Feb 2010 08:31 |
|
 |
Heinz Gast
|
sitemap: titel liegt als variable vor $seitentitel |
|
|
das ist mein 1. mal!
ich versuche eine sitemap zu erstellen, aber eine seitenmtitel liegen jeweils als variable vor wie $seitentitel.
wie kann diese variante statt des (noch nicht generierten) <titel>-tag einbinden?
DANKE von einem newbie |
|
|
|
| 12 Feb 2010 09:29 |
|
 |
Werner Homepage-Total.de Moderator

|
 |
|
|
Mit dem oberen Beispiel funktioniert das nicht.
Woher soll das Programm wissen zu welcher Datei $seitentitel gehört?
Ein Beispiel mit $seitentitel wäre hilfreich! |
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 12 Feb 2010 10:52 |
|
 |
Gast
|
 |
|
|
Oh, danke für die schnelle Antwort, bin überrascht!
code auf der seite "01.php":
<?php
$titel="Willkommen";
$nr1='class="aktiv"';
include "../inc/doctyp.inc.php";
include "../inc/de.inc.php";
?>
doctyp.inc.php = beinhaltet alles bis einschlieslich <body>
de.in.php = beinhaltet Navigation,Fuss und so weiter
in der sitemap möchte ich den titel-tag als seite
stell mich zu blöd an, sorry
und vielen Dank für die Hilfe!! |
|
|
|
| 12 Feb 2010 17:30 |
|
 |
Gast
|
 |
|
|
Diese Script steht allgemein für sitemap zur Verfügung:
code:
<?php
// Dateien mit dieser Dateiendung auflisten
$dateiendung =".php";
// Verzeichnisse angeben
$verzeichnis[0] = "../de/";
$verzeichnis[1] = "../en/";
$verzeichnis[2] = "../es/";
$verzeichnis[3] = "../fr/";
$verzeichnis[4] = "../it/";
for ($i=0; $i < count($verzeichnis); $i++) {
echo "<br><b>".$verzeichnis[$i]."</b><br>";
$verz = opendir($verzeichnis[$i]); // Verzeichnis wird geöffnet
while ($file = readdir($verz)) {
if ($file != substr_count($file, $dateiendung) && $file != "." && $file != "..") {
$regs = "";
$datei = fopen($verzeichnis[$i].$file, "r"); // Datei wird geöffnet
$inhalt = fread($datei, 1000); // Datei wird eingelesen
preg_match("/<title>(.*?)</i", $inhalt, $regs); // Text aus <title>-Tag wird extrahiert
if ($regs[1] == "") {$regs[1] = "-Ohne Titel-";} // Kein Titel vorhanden!
// Link wird erzeugt. "nofollow" für Google Spam-Links!
echo "<a href=\"$verzeichnis[$i]$file\" rel=\"nofollow\">$regs[1]</a><br>\r";
fclose($datei); // Datei wird geschlossen
}
}
closedir($verz); // Verzeichnis wird geschlossen
}
?>
und ich schaff es nicht diesen Teil zu ersetzen: "/<title>(.*?)</i"
danke für eure Zeit.
euer heinz |
|
|
|
| 12 Feb 2010 17:40 |
|
 |
Werner Homepage-Total.de Moderator

|
 |
|
|
| heinz hat Folgendes geschrieben: |
doctyp.inc.php = beinhaltet alles bis einschlieslich <body>
|
Das ist leider falsch, der <title> gehört in jede Seite
und nicht in eine include-Datei.
So funktioniert die Sitemap nicht, weil die Sitemap (die Funktion preg_match())
keine PHP-Variablen auslesen kann
Es ist mir klar das deine Seite in verschiedenen Sprachen
angeboten wird, und der <title>-Text sich in $titel befindet
und dieser sich je nach Sprache ändert.
Beispiel wie eine PHP-Datei aufgebaut sein sollte:
| PHP-Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title> Seitentitel - meine-homepage.xy </title>
<meta name="description" content="Seiteninhalt (Beschreibung)">
<?php include ("kopf.inc.php"); ?>
</head>
<body>
<?php include ("navi.inc.php"); ?>
<div id="inhalt">
<h1 id="titelzeile"> Titelzeile </h1>
Inhalt der Seite ...
</div>
<?php include ("fuss.inc.php"); ?>
</body>
</html> |
Mehr dazu unter: Seiten dynamisch mit PHP generieren |
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 12 Feb 2010 18:31 |
|
 |
Gast
|
 |
|
|
Danke für die schnelle Antwort.
Da der head sehr umfangreich ist und mehrere variablen beinhaltet, werde ich die sitemap per hand erstellen.
Aber interessant ist es WARUM es falsch ist <title> zu includen?
das hatte ich nicht gewusst, hat mir aber viel arbeit erspart und wird ohne fehlermeldung geparst und in html validiert.
gruß heinz |
|
|
|
| 12 Feb 2010 18:41 |
|
 |
Werner Homepage-Total.de Moderator

|
 |
|
|
Ja, das wäre auch mein Vorschlag gewesen
die sitemap per Hand zu erstellen. |
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 12 Feb 2010 18:56 |
|
 |
aquatinta Mitglied
|
 |
|
|
Danke Werner,
es hat wunderbar funktioniert, außer bei dem letzten "-".
aber so ist es ok. Ist ja mehr zum lernen und ich nehme das Script zum automatischen Erstellen der sitemap, denn bei ~80 Seiten ist's schon 'ne Erleichterung.
Nachtrag:
| PHP-Code: | 1
| $titel[1] = str_replace(" - ", "", $titel[1]); |
in
| PHP-Code: | 1
| $titel[1] = str_replace(" -", "", $titel[1]); |
(ein Leerzeichen weg) und es funktioniert! :-))
MfG
Christian |
|
|
|
| 12 Feb 2010 21:40 |
|
 |