Beispiel #1
0
 /**
  * @param string $packed
  * @param string $rowsep
  * @param string $valsep
  * @return array
  */
 public static function unpack($packed, $rowsep = ',', $valsep = '=')
 {
     $Values = [];
     foreach (preg_split('/' . preg_quote($rowsep, '/') . '+/', $packed, -1, PREG_SPLIT_NO_EMPTY) as $row) {
         if (strpos($row, $valsep) !== false) {
             $Values[preg_replace('/(?:[^\\w_.!:@+-]).*$/', null, trim(preg_replace('/' . preg_quote($valsep, '/') . '.*$/', null, trim($row))))] = preg_replace('/' . preg_quote($valsep, '/') . '.*$/', null, trim(preg_replace('/^.*?' . preg_quote($valsep, '/') . '/', null, trim($row))));
         }
     }
     return array_filter(Arr::only($Values, array_filter(array_keys($Values))));
 }