Der folgende Beitrag wurde am 04. 06. 2006, 21:30 Uhr von thomas123 veröffentlicht.
hallo,
ich muss mit php (reine ajax lösung auch ok) den title einer belibigen url auslesen. hab allerdings keine ahnung wie ich das clever lösen kann.
mit fopen kann ich mir die seite nehmen, aber wie komm ich geschickt an den titel ran?
gruß thomas
Der folgende Beitrag wurde am 04. 06. 2006, 22:12 Uhr von kEv* veröffentlicht.
Hallo,
schonmal daran gedacht mit einer Funktion nach dem title Tag die Datei zu durchsuchen?
Ist zumindest eine Lösung, wenn es sicher auch elegantere Lösungen gibt. Bin nicht der php Experte, aber damit würde ich es versuchen zu lösen.
LG
--
kEv*
----
Der folgende Beitrag wurde am 04. 06. 2006, 22:16 Uhr von Jeena Paradies veröffentlicht.
Hallo,
Wenn du die Seite als String in einer Variable $html_source hast, dann klappt das mit diesem Regex: preg_match('|<title>([^<]*?)</title>|is', $html_source, $title);
Grüße
Jeena Paradies
--
Wie im Urlaub am Strand | Jlog | Gourmetica Mentiri
Der folgende Beitrag wurde am 04. 06. 2006, 22:31 Uhr von Ashura veröffentlicht.
Hallo Jeena.
> Wenn du die Seite als String in einer Variable $html_source hast, dann klappt das mit diesem Regex:
>
> preg_match('|<title>([^<]*?)</title>|is', $html_source, $title);
Hm, warum eigentlich gleich mit regulären Ausdrücken losfeuern?
So kann es auch gehen:<?php
$str_html = '<html><head><title>Foo</title></head><body><p>Bar</p></body>'; // Simples HTML-Dokument
$int_start = strpos($str_html, '<title>'); // Position des title-Anfangstags
$int_start += 7; // strlen('<title>') == 7
$int_end = strpos($str_html, '</', $int_start); // Position des title-Endtags
echo substr($str_html, $int_start, $int_end - $int_start); // „Foo“
?>
Einen schönen Sonntag noch.
Gruß, Ashura
--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]
Der folgende Beitrag wurde am 04. 06. 2006, 22:41 Uhr von Ashura veröffentlicht.
Hallo Gunnar™
Kleine Korrektur für den Fall, der eigentlich nicht auftreten darf:<?php
$str_html = '<html><head><title>Foo</title></head><body><p>Bar</p></body>'; // Simples HTML-Dokument
$int_start = strpos($str_html, '<title>'); // Position des title-Anfangstags
if ($int_start !== false) {
$int_start += 7; // strlen('<title>') == 7
$int_end = strpos($str_html, '</', $int_start); // Position des title-Endtags
echo substr($str_html, $int_start, $int_end - $int_start); // „Foo“
}
?>
Eigentlich _muss_ immer ein title-Element vorhanden sein. Eigentlich.
Einen schönen Sonntag noch.
Gruß, Ashura
--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]
Der folgende Beitrag wurde am 04. 06. 2006, 23:06 Uhr von Jeena Paradies veröffentlicht.
Hallo,
> Kleine Korrektur für den Fall, der eigentlich nicht auftreten darf:
> Eigentlich _muss_ immer ein title-Element vorhanden sein. Eigentlich.
Aber wenn man wirklich HTML parsen will, dann müsste man sachen wie <
TITLE LANG=DE-DE DIR=RTL
>
bar
</TITLE>
auch mit herausfischen, oder nicht? Vor allem die Groß und kleinschreibung, das geht dann mit einem Regulären Ausdruck um einiges einfacher, aber man bräuchte eigentlich einen SGML-Parser, doch für PHP kene ich erst mal keinen.
Grüße
Jeena Paradies
--
Wie im Urlaub am Strand | Jlog | Gourmetica Mentiri
Der folgende Beitrag wurde am 04. 06. 2006, 23:09 Uhr von Ashura veröffentlicht.
Hallo Jeena.
> Aber wenn man wirklich HTML parsen will, dann müsste man sachen wie
>
> <
> TITLE LANG=DE-DE DIR=RTL
> >
> bar
> </TITLE>
>
> auch mit herausfischen, oder nicht?
Wo du recht hast …
> Vor allem die Groß und kleinschreibung, das geht dann mit einem Regulären Ausdruck um einiges einfacher, aber man bräuchte eigentlich einen SGML-Parser, doch für PHP kene ich erst mal keinen.
Man könnte die Spielchen mit den Stringfunktionen durchaus noch weiter treiben, aber dann ist fraglich, ob sie überhaupt noch einen Performancevorteil gegenüber einem regulären Ausdruck bieten.
Einen schönen Sonntag noch.
Gruß, Ashura
--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]
Der folgende Beitrag wurde am 04. 06. 2006, 23:36 Uhr von Ashura veröffentlicht.
Hallo Gunnar™
> Man könnte die Spielchen mit den Stringfunktionen durchaus noch weiter treiben, […]
Und es spricht auch eigentlich nichts dagegen, da das title-Element über kein Attribut verfügt, welches das Zeichen „>“ enthalten könnte:<?php
$str_html = '<html><head><title>Foo</title></head><body><p>Bar</p></body>'; // Simples HTML-Dokument
$int_start = stripos($str_html, '<title'); // Position des Anfangstags
if ($int_start !== false) {
$int_start = strpos($str_html, '>', $int_start); // Terminator des Anfangstags
$int_start += 1; // strlen('>') == 1
$int_end = strpos($str_html, '</', $int_start); // Position des title-Endtags
echo substr($str_html, $int_start, $int_end - $int_start); // „Foo“
}
?>
Dank stripos ist nun auch egal, ob Groß- oder Kleinschreibung.
Ich habe meine Zweifel daran, dass eine Trennung von Anfangszeichen und Name des Elementes erlaubt ist. Zumindest kann ich in der HTML-Spezifikation dazu nichts finden.
Einen schönen Sonntag noch.
Gruß, Ashura
--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]
Der folgende Beitrag wurde am 04. 06. 2006, 23:50 Uhr von Johannes Zeller veröffentlicht.
Hallo Ashura,
> Ich habe meine Zweifel daran, dass eine Trennung von Anfangszeichen und Name des Elementes erlaubt ist. Zumindest kann ich in der HTML-Spezifikation dazu nichts finden.
Das heißt ja nichts. Hast du dir auch die SGML-Spezifikation angesehen? ;-)
Schöne Grüße,
Johannes
--
WM-Tippspiel: http://zeller-johannes.de/wmtipp/
ie:% fl:( br:< va:| ls:[ fo:) rl:) n4:? ss:| de:] js:| ch:} sh:) mo:| zu:)
Der folgende Beitrag wurde am 05. 06. 2006, 00:00 Uhr von Ashura veröffentlicht.
Hallo Johannes.
> Hast du dir auch die SGML-Spezifikation angesehen? ;-)
Ja, habe ich, aber verstanden: nein. Wenn sie mir jemand übersetzen könnte …
Einen schönen Montag noch.
Gruß, Ashura
--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]
Der folgende Beitrag wurde am 05. 06. 2006, 01:16 Uhr von Ashura veröffentlicht.
Hallo Gunnar™
> > Hast du dir auch die SGML-Spezifikation angesehen? ;-)
Laut dem, was ich ich dieser Übersicht entnehmen kann, sind Whitespaces in SGML nach dem Elementnamen erlaubt, jedoch nicht vorher.
Einen schönen Montag noch.
Gruß, Ashura
--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4