|
im Forum für Webhosting Homepage gefunden: |
[gelöst] Titel (Inhalt von HTML-Tag) herrausfinden |
Netbuster
Fachidiot Threadstarter
Beiträge: 128 |
Also im moment bin ich dabei eine Suchmaschine für meine Homepage zu machen, und ich will den Titel einer gefundenen Datei ausgeben, wie schaff ich das?
z.B.
Netkoma
...
wie kann ich den Text, der zwischen steht herrausfinden?
Diese Nachricht wurde geändert von: languitar |  Profil
Editieren
Zitieren
|
HoRnominatoR
Mausakrobat
Beiträge: 161 |
|  Profil
E-Mail
Website
Editieren
Zitieren
|
Netbuster
Fachidiot Threadstarter
Beiträge: 128 |
ich finde dort kein Beispiel!?
Ich hab zwar schon eins gefunden nur es klappt nicht:
the following 2 functions grab a piece of content from an external html and lists that in separate places -- i.e. the title for html documents, or a list of subtopics dynamically.. the first function grabs the first found and returns a string, the second recursively searches the rest of the document and returns an array..
I found this was very useful to display articles on my website that had various topics marked by a consistent , and the end P> tags..
function stripfromtext($haystack, $bfstarttext, $endsection) {
$startpostext = $bfstarttext;
$startposlen = strlen($startpostext);
$startpos = strpos($haystack, $startpostext);
$endpostext = $endsection;
$endposlen = strlen($endpostext);
$endpos = strpos($haystack, $endpostext, $startpos);
return substr($haystack, $startpos + $startposlen, $endpos - ($startpos + $startposlen));
}
function &stripfromtextarray($haystack, $bfstarttext, $endsection, $myarray=array(), $offset=0) {
$startpostext = $bfstarttext;
$startposlen = strlen($startpostext);
$startpos = strpos($haystack, $startpostext, $offset);
$endpostext = $endsection;
$endposlen = strlen($endpostext);
$endpos = strpos($haystack, $endpostext, $startpos);
$myarray[] = substr($haystack, $startpos + $startposlen, $endpos - ($startpos + $startposlen));
$offset = $endpos;
if (is_numeric(strpos($haystack, $startpostext, $offset))) {
return stripfromtextarray($haystack,$startpostext, $endpostext, &$myarray, $offset);
}
else {
return $myarray;
}
}
?>
The following is an example of the use of these functions
$filetitle = stripfromtext ($content, " ", " P>");
// and
$rightmenuarray = stripfromtextarray($content, " ", " P>");
foreach ($rightmenuarray as $rm) {$rightmenu.=$rm." ";}
?> |
|  Profil
Editieren
Zitieren
|
n0f3aR
Mausakrobat
Beiträge: 154 |
Überarbeitete Version:
1:
2:
3:
4: |
preg_match_all('#(.+)#', $html, $matches);
$title = ($matches[1][0]);
|
Du kannst alternativ aus dem Array $matches auch ALLE Titel auslesen, wenn es mehr als ein Treffer gibt ;)
---
Kostenlos Webspace bei funpic.de
Diese Nachricht wurde geändert von: n0f3aR |  Profil
E-Mail
Editieren
Zitieren
|
HoRnominatoR
Mausakrobat
Beiträge: 161 |
Netbuster schrieb am 10.09.2005 10:31
ich finde dort kein Beispiel!? |
oh ja, t'schuldigung, falsche seite
http://de.php.net/preg_match
da in den unteren kommentaren, hier der auszug:
email at albert-martin dot com
23-Oct-2004 11:39
Here is a faster way of extracting a special phrase from a HTML page:
Instead of using preg_match, e.g. like this:
preg_match("/(.*)<\/title>/i", $html_content, $match);
use the following:
function ExtractString($str, $start, $end) {
$str_low = strtolower($str);
if (strpos($str_low, $start) !== false && strpos($str_lower, $end) !== false) {
$pos1 = strpos($str_low, $start) + strlen($start);
$pos2 = strpos($str_low, $end) - $pos1;
return substr($str, $pos1, $pos2);
}
}
$match = ExtractString($html_content, "", "");
?> |
---
get OPERA for free
|  Profil
E-Mail
Website
Editieren
Zitieren
|
Netbuster
Fachidiot Threadstarter
Beiträge: 128 |
gut danke, nochmal
|  Profil
Editieren
Zitieren
| |
|
|