1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<?php /** * Nutzen Sie diese Funktion, um den Inhalt einer Konfigurationsdatei in * ein Array zu konvertieren. * * @param string $string [, bool $sections = FALSE] * @return array * @see http://www.php-function.de/funktion/strings/parse_ini_string/ */ function parse_ini_string($string, $sections = FALSE){ $lines = explode("\n", $string); $return = array(); $in_section = false; foreach($lines as $line){ $line = trim($line); if(strpos($line, ";")) $line = trim(substr($line, 0, strpos($line, ";"))); if(!$line || $line[0] == "#" || $line[0] == ";") continue; if($line[0] == "[" && $endIdx = strpos($line, "]")){ $section_name = substr($line, 1, $endIdx-1); $in_section = true; continue; } if(!strpos($line, '=')) continue; $tmp = explode("=", $line, 2); $value = ltrim($tmp[1]); if($value[0] == '"' && $value[strlen($value)-1] == '"') $value = stripslashes(substr($value, 1, -1)); if($sections && $in_section) $return[$section_name][trim($tmp[0])] = $value; else $return[trim($tmp[0])] = $value; } return $return; } ?> |
PHP-Funktion parse_ini_string()
Tags: String-Funktionen Kommentieren
PHP-Funktion mk_console_container()
Tags: String-Funktionen Kommentieren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
<?php /** * Erstellt einen ASCII-Kasten um den übergebenen String. Solche grafischen Details kennt man aus * Konsolen-Programmen und in der guten alten Shell. * * @param string $content [, int $width = 0 [, array $chars = array()]] * @return string * @see http://www.php-function.de/funktion/strings/mk_console_container/ */ function mk_console_container($content, $width = 0, $chars = array()){ if(!count($chars)) $chars = array("vertical" => "|", "horizontal" => "-", "corner" => "+"); // Längste Zeile im Array bestimmten $length = 0; $content = explode("\n", $content); foreach($content as $line){ if(strlen($line) > $length) $length = strlen($line); } if($width == 0 || $width < $length) // Wenn keine Breite angegeben ist/Breite = 0 $width = 10 + $length; $width -= 2; // Weil ja rechts und links noch Rahmen sind /* Array-Elemente mit Leerzeichen auffüllen */ foreach($content as $num => $line){ $line = trim($line); if($line == "%line%"){ // Zeichne eine Linie $content[$num] = str_repeat($chars["horizontal"], $width); continue; } if($line == "%empty%"){ // Leere Zeile $content[$num] = str_repeat(" ", $width); continue; } $empty = $width - strlen($line); // Anzahl der nicht ausgefüllten Zeichen $diff["left"] = ceil($empty / 2); $diff["right"] = $empty - $diff["left"]; $content[$num] = str_repeat(" ", $diff["left"]).$line.str_repeat(" ", $diff["right"]); } /* Rahmen rechts und links hinzufügen */ foreach($content as $num => $line) $box[] = $chars["vertical"].$line.$chars["vertical"]; /* Rahmen oben und unten generieren */ array_unshift($box, $chars["corner"].str_repeat($chars["horizontal"], $width).$chars["corner"]); // Rahmen oben array_push($box, $chars["corner"].str_repeat($chars["horizontal"], $width).$chars["corner"]); // Rahmen unten return implode("\n", $box); } ?> |
PHP-Funktion is_developer()
Tags: String-Funktionen Kommentieren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php /** * Diese Funktion überprüft den Browser-Agent des Besuchers auf das Vorhandensein der * Zeichenkette "DEVELOPER". Entwickler, die ihren User-Agent entsprechend angepasst haben, * können hiermit vom Script erkannt werden und personalisierte Ausgaben, beispielsweise * Fehlermeldungen und Statusinformationen des Scripts erhalten. * * @param void * @return bool * @see http://www.php-function.de/funktion/strings/is_developer/ */ function is_developer(){ if(strpos($_SERVER['HTTP_USER_AGENT'], "DEVELOPER") > -1) return TRUE; return FALSE; } ?> |
PHP-Funktion html_select_field()
Tags: String-Funktionen Kommentieren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
<?php /** * Erstellt aus einem übergebenen Array ein Auswahlfeld in HTML. * Als erstes ist das Array mit den Werten zu übergeben. Die verwendeten Schlüssel entsprechen * den Option-Values. Wird hier ein mehrdimensionales Array übergeben, so werden automatisch * OPTGROUPS angelegt, die als Label den Schlüssel des Elements haben. Zweiter Parameter ist * ein Array mit Definitionen zu den Attributen des SELECT-Tags. Der Schlüsselname entspricht dem * Attribut, der Wert dem Attribut-Wert. Letzter Parameter ist der vorselektierte Eintrag der * Liste. Dieser Wert muss mit der Schlüsselbezeichnung im Werte-Array (Parameter 1) * übereinstimmen. * Im Fehlerfall wird FALSE zurückgegeben. * * @param array $groups [, array $attributes = array() [, string $selected = ""]] * @return string * @see http://www.php-function.de/funktion/strings/html_select_field/ */ function html_select_field($groups, $attributes = array(), $selected = ""){ // Zuerst: SELECT generieren (mit Attributen) if(!is_array($groups)) return FALSE; $return = "\n"; $return .= '<select'; if(count($attributes)) foreach($attributes as $tag => $val) $return .= " ".$tag.'="'.($val == "" ? $tag : $val).'"'; $return .= ">"."\n"; // Dann: Werte durchlaufen foreach($groups as $group_key => $group_val){ // OPTGROUP öffnen if(is_array($group_val)){ $return .= "\t"."<optgroup label=\"".$group_key."\">"."\n"; $values = $group_val; }else{ $values = array($group_key => $group_val); } // OPTIONS schreiben foreach($values as $key => $val){ $return .= "\t\t".'<option value="'.$key.'"'; if($key == $selected) $return .= " selected"; $return .= ">".$val.'</option>'."\n"; } // OPTGROUP schließen if(is_array($group_val)) $return .= "\t"."</optgroup>"."\n"; } // Schließlich: SELECT schließen $return .= "</select>"."\n"; return $return; } ?> |
PHP-Funktion html_range_field()
Tags: String-Funktionen Kommentieren
$start
und $end
. Vorausgewählt ist das Element mit dem Schlüssel $select. Vierter Parameter gibt Attribute des SELECT-Tags an, beispielsweise einen Namen. Dies kann über ein assoziatives mit dem Schlüssel „name“ und dem entsprechenden Wert geschehen. Der fünfte Parameter gibt an, um welchen Wert die Zahl bei jedem Schritt erhöht werden soll. Soll die Anzeige durch einen String ergänzt werden, schreibe dies in den Parameter $suffix
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?php /** * Erzeugt ein OPTION-Feld mit Zahlen zwischen $start und $end. Vorausgewählt ist das Element mit * dem Schlüssel $select. Vierter Parameter gibt Attribute des SELECT-Tags an, beispielsweise * einen Namen. Dies kann über ein assoziatives mit dem Schlüssel "name" und dem entsprechenden * Wert geschehen. Der fünfte Parameter gibt an, um welchen Wert die Zahl bei jedem Schritt * erhöht werden soll. Soll die Anzeige durch einen String ergänzt werden, schreibe dies in den * Parameter $suffix. * * @param int $start, int $end [, int $selected = 0 [, array $attributes = array() [, int $diff = 1 [, string $suffix = ""]]]] * @return string * @see http://www.php-function.de/funktion/strings/html_range_field/ */ function html_range_field($start, $end, $selected = 0, $attributes = array(), $diff = 1, $suffix = ""){ $return .= "\n"; $return .= "<select"; if(count($attributes)) // Attribute einfügen foreach($attributes as $tag => $val) if($val != "") $return .= " ".$tag.'="'.$val.'"'; else $return .= " ".$tag; $return .= ">\n"; for($i=$start; $i<=$end; $i=$i+$diff){ $return .= "\t".'<option value="'.$i.'"'; if($i == $selected) $return .= " selected"; $return .= ">$i".$suffix."</option>"; $return .= "\n"; } $return .= '</select>'; $return .= "\n"; return $return; } ?> |
PHP-Funktion htmlspecialchars_utf8()
Tags: String-Funktionen Kommentieren
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php /** * Analog zur PHP-Funktion htmlspecialchars konvertiert diese PHP-Funktion HTML-Sonderzeichen. * Dies jedoch für Strings im UTF8-Format. * * @param string $string [, int $quotes = ENT_QUOTES] * @return string * @see http://www.php-function.de/funktion/strings/htmlspecialchars_utf8/ */ function htmlspecialchars_utf8($string, $quotes = ENT_QUOTES){ return htmlspecialchars($string, $quotes, "UTF-8"); } ?> |
PHP-Funktion get_file_ending()
Tags: String-Funktionen Kommentieren
$dot
angegeben, so wird der Punkt mit zurückgegeben.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php /** * Extrahiert die Dateiendung aus einem Dateinamen. Wird der zweite Parameter $dot angegeben, so * wird der Punkt mit zurückgegeben. * * @param string $filename [, bool $dot = FALSE] * @return string * @see http://www.php-function.de/funktion/strings/get_file_ending/ */ function get_file_ending($filename, $dot = FALSE){ $info = pathinfo($filename); if($dot) $info["extension"] = ".".$info["extension"]; return $info["extension"]; } ?> |
PHP-Funktion generate_password()
Tags: String-Funktionen Kommentieren
Erzeugt ein (pseudo-)zufälliges Passwort und gibt dieses zurück. Ohne Parameter wird ein alphanumerisches 8-Zeichen-Passwort erstellt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php /** * Erzeugt ein (pseudo-)zufälliges Passwort und gibt dieses zurück. Ohne Parameter wird ein * alphanumerisches 8-Zeichen-Passwort erstellt. * * @param int $length = 8 [, string $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"] * @return string * @see http://www.php-function.de/funktion/strings/generate_password/ */ function generate_password($length = 8, $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"){ srand(microtime()*1000000); for($i=0;$i<$length;$i++){ $z = rand(0, strlen($chars)-1); $string .= $chars[$z]; } return $string; } ?> |
PHP-Funktion convert2url()
Tags: Allgemein | String-Funktionen Kommentieren
Wandelt einen übergebenen String in eine kompatible Zeichenkette um, die als Dateiname oder URL verwendet werden kann. Dies findet zum Beispiel Anwendung, wenn beliebige Zeichenketten als Dateiname von Websites verwendet werden sollen. Die Konvertierung ist jedoch nicht umkehrbar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php /** * Wandelt einen übergebenen String in eine kompatible Zeichenkette um, die als Dateiname oder * URL verwendet werden kann. Dies findet zum Beispiel Anwendung, wenn beliebige Zeichenketten als * Dateiname von Websites verwendet werden sollen. Die Konvertierung ist jedoch nicht umkehrbar. * * @param string $text [, int $limit = 250] * @return string * @see http://www.php-function.de/funktion/strings/convert2url/ */ function convert2url($text, $limit = 250){ $allowed = "abcdefghijklmnopqrstuvwxyz0123456789"; $replace = array("ä" => "ae", "ö" => "oe", "ü" => "ue", "ß" => "ss", "Ä" => "Ae", "Ö" => "Oe", "Ü" => "Ue"); $text = strtr($text, $replace); $text = strtolower($text); for($i=0;$i<strlen($text);$i++){ if(!substr_count($allowed, $text[$i])) // Nicht bei gültigen Zeichen dabei $text = substr_replace($text, "-", $i, 1); } $text = preg_replace("#[-]+#", "-", $text); // Mehrfache Bindestriche entfernen $text = str_replace("-", " ", $text); $text = trim($text); $text = str_replace(" ", "-", $text); if(strlen($text) > $limit) $text = substr($text, 0, $limit); return $text; } ?> |
PHP-Funktion check_var()
Tags: String-Funktionen Kommentieren
Mit dieser Funktion kannst du eine übergebene Variable auf vielerlei Gesichtspunkte prüfen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
<?php /** * Mit dieser Funktion kannst du eine übergebene Variable auf vielerlei Gesichtspunkte prüfen. * * @param mixed $var, array $validation * @return bool * @see http://www.php-function.de/funktion/strings/check_var/ */ function check_var($var, $validation){ if($validation["optional"] && empty($var)) return true; foreach($validation as $name => $val){ switch($name){ // Minimaler Wert (für Integers) case "min": if($var < $val) return false; break; // Maximaler Wert (für Integers) case "max": if($var > $val) return false; break; // Regulärer Ausdruck case "preg": if(!preg_match($val, $var)) return false; break; // Genaue Länge case "len": if(strlen($var) != $val) return false; break; // Maximale Länge case "maxlen": if(strlen($var) > $val) return false; break; // Minimale Länge case "minlen": if(strlen($var) < $val) return false; break; // Einen der angegebenen Werte case "enum": if(!in_array($var, $val)) return false; break; // Zugelassene Werte case "in_array": if(!in_array($var, $val)) return false; break; // Filter (FILTER_VALIDATE_INT, FILTER_VALIDATE_BOOLEAN, FILTER_VALIDATE_FLOAT, FILTER_VALIDATE_FLOAT, FILTER_VALIDATE_URL, FILTER_VALIDATE_EMAIL, FILTER_VALIDATE_IP) case "filter": switch(strtolower($val)){ case "int": $val = FILTER_VALIDATE_INT; break; case "boolean": $val = FILTER_VALIDATE_BOOLEAN; break; case "float": $val = FILTER_VALIDATE_FLOAT; break; case "url": $val = FILTER_VALIDATE_URL; break; case "email": $val = FILTER_VALIDATE_EMAIL; break; case "ip": $val = FILTER_VALIDATE_IP; break; } if(!filter_var($var, $val)) return false; break; // Typüberprüfung case "type": switch(strtolower($val)){ case "int": if(is_array($var) OR !preg_match("/^+$/", $var)) return false; break; case "float": if(is_array($var) OR !preg_match("/^(+)([\.\,])(+)$/", $var)) return false; break; case "floatde": if(is_array($var) OR !preg_match("/^(+)([\,])(+)$/", $var)) return false; break; case "floaten": if(is_array($var) OR !preg_match("/^(+)([\.])(+)$/", $var)) return false; break; case "string": if(is_array($var) OR !is_string($var)) return false; break; case "array": if(!is_array($var)) return false; break; case "int": if(!is_int($var)) return false; break; case "bool": if(!is_bool($var)) return false; break; case "numeric": if(!is_numeric($var)) return false; break; } break; case "format": switch(strtolower($val)){ case "telephone": if(!preg_match("/^(\(?\+?*\)?)?[0-9_\- \(\)\/]*$/", $var)) return false; break; case "plz": if(!preg_match("/^{5}$/", $var)) return false; break; } break; } } return true; } ?> |