Verlauf: Startseite ›› Code ›› PHP
RegExp - Headlines als Liste
mit Anker versehen
Alle Headlines (h1, h2) des Strings werden als Sprungliste (ul-Liste) ausgegeben. So kann ganz am Anfang der Seite eine Navigation zu den einzelnen Überschriften eingebunden werden.
Code
<?php
$str = '
<h1>h1 1</h1>
<p>ich bin wer ich bin</p>
<h1>h1 2</h1>
<p>ich bin wer ich bin</p>
<h2>h2 2.1</h2>
<h2>h2 2.2</h2>
';
$ptr = '/<h([1-6])>(.+?)<\/h\1>/is';
preg_match_all($ptr, $str, $matches);
$h1 = '1';
for ($i = 0, $j = count($matches[0]); $i < $j; $i++) {
$a = $matches[1][$i];
$rpl = '<a href="experimental/?#headline'.$i.'">$2</a>';
if ($a == 1) {
$h1_o = $h1;
$arr[$h1_o][$h1_o] = preg_replace($ptr, $rpl, $matches[0][$i]);
$h1++;
$h2 = 1;
}
if ($a == 2) {
$arr[$h1_o][$h1_o.'h2'][$h2] = preg_replace($ptr, $rpl, $matches[0][$i]);
$h2++;
}
}
$out = '<ul>'."
";
for ($i=1; $i<=count($arr); $i++) {
foreach ($arr[$i] as $a) {
if (!is_array($a)) {
$out .= "
".'<li>'.$a;
}
else {
$out .= "
".'<ul>'."
";
foreach ($a as $b) {
if (!is_array($b)) {
$out .= "
".'<li>'.$b.'</li>';
}
}
$out .= "
".'</ul>'."
";
}
$z = next($arr[$i]);
if (!is_array($z)) {
$out .= '</li>';
}
}
}
$out .= "
</ul>
";
print $out;
?>13.04.2006 - 13:42:44
Der letzte Artikel
Redaxo Cheatsheet 4.2
Das Cheatsheet beinhaltet:
OOArticle, OOArticleSlice, OOCategory, OOMedia, OOMediaCategory, Extension Points, REX Variablen, $REX, $REX_ACTION, Moduleingabe, Modulausgabe
Herunterladen kann man es ich auf blumbeet.com. ... zum Artikel
13.05.2009 - 21:38:53 - Thema: Allgemeines
Weitere Artikel
RegExp - Headlines als Liste
mit Anker versehen
Alle Headlines (h1, h2) des Strings werden als Sprungliste (ul-Liste) ausgegeben. So kann ganz am Anfang der Seite eine Navigation zu den einzelnen Überschriften eingebunden werden. ... zum Artikel
13.04.2006 - 13:42:44
Mahlis
Mai 2005
Umsetzung . Programmierung . Content Management System . Hosting . Pflege