simplecontent

PHP Snippets und Beispiele

Inhaltsverzeichnis A-Z Register
Beispiel ausführen

Key-Value Paare aus String ermitteln

Das PHP Code Beispiel:
<?php

$kv_list 
= <<<EOT

1 => Testumgebung, 2 => Liveumgebung, 3 => "auch mit , und =>", 4, 5

EOT;


function 
parse_key_value_list($kv_list)
{
    
$stack = array();
    
$reg_exp '#([^,"\'=>]+ | => | "[^"]*" | \'[^\']*\')#x';
    
$success preg_match_all($reg_exp$kv_list$match);

    
$t count($match[1]);
    
$n 0;

    
// ggf. Anführungen entfernen und trimmen
    
foreach ($match[1] as $m){
        
$m preg_replace('#("|\')(.*)()#''\2',$m);
        
$hits[] = trim($m);
    }

    for (
$c 0$c $t$c++){

        if (
$hits[$c+1] == '=>') {
            
$key2use $hits[$c];
            
$val2use $hits[$c+2];
            
$stack[$key2use] = $val2use;
            
$c+=2;
            
// bei numerischem Key weiterzählen
            
if (is_numeric($key2use)){
                
$n++;
            }
        }else{
            
$stack[$n] = $hits[$c];
            
$n++;
        }
    }
    return 
$stack;
}

print 
'<pre>';
print_rparse_key_value_list($kv_list));
print 
'</pre>';


?>

Dieses PHP Snippet soll in erster Linie als Beispiel und Anregung für eigene Bemühungen dienen.
Gerne darf man es für Projekte aller Art benutzen.
Möchte jemand das Snippet also solches in ähnlicher oder anderer Form veröffentlichen ist ein kleiner Hinweis auf simplecontent.net nicht zuviel verlangt oder Herr Koch?
Für die Abwesenheit von Fehlern kann natürlich keine Gewähr gegeben werden.