Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 26.11.2013, 05:33
Solander Solander ist offline
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