PHP:Parser

Aus DavaHome.NET Wiki

Wechseln zu: Navigation, Suche

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.

Persönliche Werkzeuge
DavaHome