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 |
<?php /** * Konvertiert ein Array in eine Konfigurationsdatei. * Wird der 2. Parameter gewählt, so rechnet die Funktion mit einem mehrdimensionalen Array, * wobei die Schlüssel der obersten Ebene die Bereichsüberschriften angeben. * * @param array $array [, bool $sections = FALSE] * @return string * @see http://www.php-function.de/funktion/strings/write_ini_string/ */ function write_ini_string($array, $sections = FALSE){ $content = ""; if($sections){ foreach($array as $key => $elem){ $content .= "[".$key."]\n"; foreach ($elem as $key2 => $elem2){ if(is_array($elem2)){ for($i=0;$i<count($elem2);$i++){ $content .= $key2."[] = \"".$elem2[$i]."\"\n"; } }else if($elem2=="") $content .= $key2." = \n"; else $content .= $key2." = \"".$elem2."\"\n"; } } }else{ if($array) foreach($array as $key2 => $elem){ if(is_array($elem)){ for($i=0;$i<count($elem);$i++){ $content .= $key2."[] = \"".$elem[$i]."\"\n"; } }else if($elem == "") $content .= $key2." = \n"; else $content .= $key2." = ".(is_numeric($elem) ? $elem : '"'.$elem.'"')."\n"; } } return $content; } ?> |
PHP-Funktion write_ini_string()
Tags: String-Funktionen Kommentieren
PHP-Funktion string_cut_word()
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 |
<?php /** * Beschneidet einen String auf die angegebene Anzahl von Zeichen. Hierbei werden Worte jedoch * stets vollständig belassen und nur an Zwischenräumen getrennt. Der dritte Parameter gibt an, * welche Zeichenkette nach dem Beschneiden angehängt werden soll (normal die drei Punkte). * * @param string $string, int $length [, string $end = "..."] * @return string * @see http://www.php-function.de/funktion/strings/string_cut_word/ */ function string_cut_word($string, $length, $end = "..."){ $string = explode(" ", $string); $tl = 0; foreach($string as $s){ $tl += strlen($s); if($tl <= $length) $return .= $s." "; else return trim($return).$end; } return $return; } ?> |
PHP-Funktion string_cut()
Tags: String-Funktionen Kommentieren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php /** * Beschneidet den übergebenen String auf die angegebene Anzahl von Zeichen. Der dritte Parameter * wird anschließend an den String angehängt (standardmäßig drei Punkte). * * @param string $string, int $length [, string $end = "..."] * @return string * @see http://www.php-function.de/funktion/strings/string_cut/ */ function string_cut($string, $length, $end = "..."){ if(strlen($string) > $length){ $string = substr($string, 0, $length); return $string.$end; } return $string; } ?> |
PHP-Funktion replace()
Tags: String-Funktionen Kommentieren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php /** * Ersetzt alle Platzhalter in einem übergebenen Codebaustein. Diese sind wir in Parameter drei * angegeben standardmäßig durch geschwungene Klammern gekennzeichnet. * * @param string $code, array $var [, string $split = "{|}"] * @return string * @see http://www.php-function.de/funktion/strings/replace/ */ function replace($code, $var, $split = "{|}"){ if(!$var) return $code; $split = explode("|", $split); foreach($var as $key => $val) $replace[$split[0].$key.$split[1]] = $val; return strtr($code, $replace); } ?> |
PHP-Funktion random_string()
Tags: String-Funktionen Kommentieren
$length
Zeichen. Dabei wird nur auf den in $chars angegebenen Pool von Zeichen zurückgegriffen. Wird dieser Parameter nicht mit angegeben, so wird ein alphabetischer String erzeugt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php /** * Erzeugt einen (pseudo-)zufälligen String mit der Länge $length Zeichen. Dabei wird nur auf * den in $chars angegebenen Pool von Zeichen zurückgegriffen. Wird dieser Parameter nicht mit * angegeben, so wird ein alphabetischer String erzeugt. * * @param int $length = 10 [, string $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"] * @return string * @see http://www.php-function.de/funktion/strings/random_string/ */ function random_string($length = 10, $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"){ srand(microtime()*1000000); for($i=0;$i<$length;$i++){ $z = rand(0, strlen($chars)-1); $string .= $chars[$z]; } return $string; } ?> |
PHP-Funktion parse_ini_string()
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 |
<?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 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; } ?> |