zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden [php] HTML Gliederung nach Ebenen in DB

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 26.11.2013, 05:33
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 12.01.2006
Beiträge: 71
Solander befindet sich auf einem aufstrebenden Ast
Standard [php] HTML Gliederung nach Ebenen in DB

Hey,

ich versuche gerade einen Code zu schreiben, mit dem ich eine Gliederung mit bis zu 4 Ebenen (ursprünglich aus Word, aber mittlerweile in HTML) in eine Datenbank zu bringen. Mein Ansatz ist den String (insgesamt knapp 300 Zeilen) in ein multidimensionales Array zu laden und dann an die DB zu schicken. Mein Code bisher will nicht so recht, irgendwie bekomme ich zu viele Array Ebenen (statt $endArray[1] = Forschung, $endArray[1][1] = FH, $endArray[1][2] = Forschungsinstitute etc). Außerdem taucht der Punkt Forschung gar nicht auf..

PHP-Code:
$str "
<h1>Forschung</h1>
<h2>Fachhochschulen</h2>
<h2>Forschungsinstitute</h2>
<h2>Private Hochschulen</h2>
<h3>Konstanz</h3>
<h3>Marburg</h3>
<h1>nochmal h1</h1>
<h2>Forschungsinstitute</h2>
<h2>Private Hochschulen</h2>
"
;



$asArray explode("\n",$str);  

  
$h1 0;
  
$h2 0;
  
$h3 0;
  
$h4 0
  


  
for(
$i 0$i count($asArray); ++$i) {
  
$level substr($asArray[$i],1,2);

  if(
$level == "h1"){
      
$h1++;
    
preg_match_all("/<h1>(.+?)<\/h1>/is"$asArray[$i], $matches);
    
$endArray[$h1] = $matches[1];
  } elseif (
$level == "h2"){
    
      
preg_match_all("/<h2>(.+?)<\/h2>/is"$asArray[$i], $matches);
    
$endArray[$h1][$h2]= $matches[1];
    
$h2++;
     
  } elseif (
$level == "h3"){
      
preg_match_all("/<h3>(.+?)<\/h3>/is"$asArray[$i], $matches);
    
$endArray[$h1][$h2][$h3]= $matches[1];
    
$h3++; 
  } elseif (
$level == "h4"){
      
preg_match_all("/<h4>(.+?)<\/h4>/is"$asArray[$i], $matches);
    
$endArray[$h1][$h2][$h3][$h4]= $matches[1];
    
$h4++; 
  }
  
  
}

echo 
"<pre>";
print_r($endArray);
echo 
"</pre>"
Für Hinweise, was ich mir näher anschauen sollte, wäre ich sehr dankbar!
__________________
www.anotherstyle.de

Geändert von Solander (26.11.2013 um 05:42 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 26.11.2013, 12:38
?!?
XHTMLforum-Kenner
 
Registriert seit: 20.03.2013
Beiträge: 1.638
explanator sorgt für eine eindrucksvolle Atmosphäreexplanator sorgt für eine eindrucksvolle Atmosphäre
Standard

Das Forschung nicht auftaucht liegt daran das du mit dem ersten Wert bei Zählerstand 0 anfängst und dann gleich 1 dazu addierst, dadurch wird der erste Wert nie erscheinen.
Zu sehen hier
Code:
if($level == "h1"){
      $h1++;
das $h1++; muss nach der Ausführung der Schleife.
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..."
Aus einem Forum.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Css - html Roadrunner1 (X)HTML 1 03.05.2011 14:10
CSE HTML Validator Standard Anschaffung wert? DieterWelzel Offtopic 10 17.08.2007 18:02
HTML: Alle Elemente von HTML 4.01 bis XHTML 2.0 laborix Ressourcen 45 31.07.2007 13:54
Container passt sich in der Höhe nicht an andere Ebenen an nicoendter CSS 56 24.07.2007 19:30
background top und left (html, body) darksnake CSS 7 05.03.2007 19:29


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:40 Uhr.