PHP:Parser
Aus DavaHome.NET Wiki
Ein Code Snippet das zum Auslesen von zum Beispiel XML Schnittstellen dient.
Inhaltsverzeichnis |
Keywords
php, funktion, function, codesnippet, snippet, code, codeschnipsel, code snippet, parse, parser, leser, reader
Permalink
http://wiki.davahome.net/index.php/PHP:Parser
Code Snippet
Beschreibung der Funktion
- Summary: Diese Funktion "schneidet" gewisse Teile auf einer Webseite aus
- Parameter "Hyperlink" (string): URL der Webseite oder Pfad der Datei die ausgelesen werden soll
- Parameter "Start" (string): Mit welchem Codeausschnitt beginnt der gewünschte Bereich
- Parameter "End" (string): Mit welchem Codeausschnitt endet der gewünschte Bereich
- Optionaler Parameter "Buffer" (int): Bei sehr großen Seiten sollte dieser Wert größer als 2000 sein
- Rückgabewert: Bei Fehlern ist dieser Wert (bool) false, andernfalls beinhaltet er den ausgeschnittenen Bereich als (string)
function Parse($Hyperlink, $Start, $End, $Buffer = 2000)
{
$Ressource = fopen ($Hyperlink, "r");
if($Ressource === false || trim($Ressource) == "") return false;
$i = 0;
while (feof($Ressource) == false)
{
$Line[$i] = fgets($Ressource, $Buffer);
$i++;
}
fclose($Ressource);
$Result = "";
for ($c = 0; $c < $i; $c++)
{
if ($A = strstr($Line[$c], $Start))
{
$B = str_replace($Start, "", $A);
$EndLine = strstr($B, $End);
$Result .= str_replace($EndLine, "", $B);
}
}
return $Result;
}
XML Parser
Quelle: http://de.php.net/manual/de/function.xml-parse.php#97556
function objectsIntoArray($arrObjData, $arrSkipIndices = array())
{
$arrData = array();
// if input is object, convert into array
if (is_object($arrObjData)) {
$arrObjData = get_object_vars($arrObjData);
}
if (is_array($arrObjData)) {
foreach ($arrObjData as $index => $value) {
if (is_object($value) || is_array($value)) {
$value = objectsIntoArray($value, $arrSkipIndices); // recursive call
}
if (in_array($index, $arrSkipIndices)) {
continue;
}
$arrData[$index] = $value;
}
}
return $arrData;
}
//Usage:
$xmlUrl = "feed.xml"; // XML feed file/URL
$xmlStr = file_get_contents($xmlUrl);
$xmlObj = simplexml_load_string($xmlStr);
$arrXml = objectsIntoArray($xmlObj);
print_r($arrXml);
Zusätzliche Informationen
Diese Funktion wurde nur angepasst. Das Originalskript kommt von Martin Puaschitz (onestone).
Die Funktion von DavaHome wurde teilweise überarbeitet und verbessert. Außerdem wurde das Originalskript zu einer Funktion zusammengefasst.

