Perlen, Adagio.
Danke![]()
Na gut, ganz so viele sind es nicht, aber diese hab ich mit der Zeit zusammengesammelt und nutze sie recht oft für alles Mögliche (Zeitberechnung, Stringmanipulation, etc.).
Verbesserungsvorschläge und Ideen sind gern willkommen ;)
Code:// --------------- Zeitberechnungen --------------- function startcount() // Startcount / Endcount - misst die Zeit in ms, die waehrend der // erstellung der Seite vergangen sind. { $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; return $mtime; } function endcount($starttime) { $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $endtime = $mtime; $totaltime = ($endtime - $starttime); printf("%f", $totaltime); } function unix2date($unixzeit,$format,$clock) // Wandelt einen UNIX-Timestamp in ein normales Datum um // und schickt einen String zurueck ... // 11.09.2002 18:03 Uhr { if($format=="long") $months = array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"); if($format=="short") $months = array("Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"); if($format=="digit") $months = array("01.","02.","03.","04.","05.","06.","07.","08.","09.","10.","11.","12."); list($mday,$month,$year) = split("( )",date("d n Y",$unixzeit)); $month -= 1; if($clock=="uhr") { $uhrzeit=date("H:i",$unixzeit); return $this_day="$mday. $months[$month] $year - $uhrzeit"; } else { return $this_day="$mday. $months[$month] $year"; } } function date_diff($date1, $date2) # Vergleicht zwei TIMESTAMP (20021121) Daten (Tage, Stunden, Minuten, Sekunden) { $s = strtotime($date2)-strtotime($date1); $d = intval($s/86400); $s -= $d*86400; $h = intval($s/3600); $s -= $h*3600; $m = intval($s/60); $s -= $m*60; return array("d"=>$d,"h"=>$h,"m"=>$m,"s"=>$s); } function calc_days($start,$end) # Errechnet die Tage (unixdate) zwischen zwei Daten { $result = (int)(($end-$start)/86400); return $result; } // --------------- Textstrings manipulieren, BB-Codes --------------- function cleantext($string) // 20.02.2003 - ' werden auch umgewandelt (ENT_QUOTES) // 21.02.2003 - wenn magic_quotes_gpc aus ist, addslashes durchführen { $string=trim($string); if(get_magic_quotes_gpc() != 1) $string=addslashes($string); # Magic Quotes an/aus? $string=htmlentities($string,ENT_QUOTES); # ' auch umwandeln $string=preg_replace('/\r\n|\r|\n/', '<br />', $string); # \r und \n Umbrüche umwandeln return $string; } function re_htmlentities($html) // Erstellt aus HTML-Entitles normale Zeichen her (fuer Emails) // Neue, kurze Version // 10.10.2002 16:50 Uhr { $arr = get_html_translation_table(HTML_ENTITIES); $arr = array_flip($arr); return strtr($html, $arr); } function br2break($string) // Erstellt aus <br /> und <br> wieder normale \r\n Umbrueche { return preg_replace("=<br(>|([\s/][^>]*)>)\r?\n?=i", "\r\n", $string); } function bbcode2html($text) // Erstellt aus den BBCodes die passenden <span>-Definitionen { $text = preg_replace("#\[f\](.*?)\[/f\]#si", '<strong>\\1</strong>', $text); $text = preg_replace("#\[k\](.*?)\[/k\]#si", '<em>\\1</em>', $text); $text = preg_replace("#\[b\](.*?)\[/b\]#si", '<span class="blau">\\1</span>', $text); return $text; } // Macht aus https, ftps, mailtos und news anklickbare links function replace_uri($str) { $pattern = '#(^|[^\"=]{1})(http://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm'; return preg_replace($pattern,"\\1<a href=\"\\2\\3\">\\2\\3</a>\\4",$str); } // Ersetzt Umlaute mit oe, ue etc. // Nützlich für hochgeladene Dateien // 20.02.2003 22:56 function replace_umlaut($str) { $str=str_replace("ß","ss",$str); $str=str_replace("ä","ae",$str); $str=str_replace("ü","ue",$str); $str=str_replace("ö","oe",$str); $str=str_replace("Ä","Ae",$str); $str=str_replace("Ü","Ue",$str); $str=str_replace("Ö","Oe",$str); $str=str_replace(",","",$str); $str=preg_replace("/\s/s","_",$str); # Alle Leerzeichen weg return $str; } // --------------- RegEx zum Überprüfen von Strings --------------- // Ueberprueft, ob im String nur Zahlen stehen function checknumber($string) { if (!preg_match("/^\d+$/",$string)) { return false; } else { return true; } } // Ueberprueft, ob im String nur Buchstaben stehen function checkletter($string) { if (!preg_match("=^[a-zäöüß]+$=i",$string)) { return false; } else { return true; } } function check_email($email) // Checkt, ob Emails gültig sind { $nonascii = "\x80-\xff"; # Non-ASCII-Chars are not allowed $nqtext = "[^\\\\$nonascii\015\012\"]"; $qchar = "\\\\[^$nonascii]"; $protocol = '(?:mailto:)'; $normuser = '[a-zA-Z0-9][a-zA-Z0-9_.-]*'; $quotedstring = "\"(?:$nqtext|$qchar)+\""; $user_part = "(?:$normuser|$quotedstring)"; $dom_mainpart = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.'; $dom_subpart = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*'; $dom_tldpart = '[a-zA-Z]{2,5}'; $domain_part = "$dom_subpart$dom_mainpart$dom_tldpart"; $regex = "$protocol?$user_part\@$domain_part"; // RegEx end return preg_match("/^$regex$/",$email); } function checkurl($url) # Überprüft, ob URLs äußerlich korrekt sind { $regex="^(http://|https://)?[-a-z0-9]+(\.?[-a-z0-9]+){0,3}\.[a-z]{2,4}((/[[:graph:]]*){1,5}([[:graph:]]+\.[a-z0-9]{1,5})?)?$"; return eregi($regex,$url); } // --------------- Passworterstellung / ID-Erstellung --------------- function generatepw($length) // Erstellt ein zufaelliges Passwort und schickt es zurueck // Erwartet wird ein Wert (Laenge des Passwortes) // Ohne l und 1 (sieht zu aehnlich aus) // 15.08.2002 12:09 Uhr { $pass = ""; $index = 1; while ($index <= $length) { mt_srand((double)microtime()*1000000); $random = mt_rand(0,59); $pass .= substr("abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ023456789", $random, 1); $index++; } return $pass; } function makeunique($passlen) // Schnellere, aber auch einfachere Version eines Passwortgenerators // Die Zeichen sind willkuerlich, man hat keine Auswahl // 26.03.2003 - Verbesserte Zufallsfunktion { list($usec, $sec) = explode(' ', microtime()); mt_srand((float) $sec + ((float) $usec * 100000)); $rand_string = md5(uniqid(mt_rand(), true)); $passwort = substr($rand_string,0,$passlen); return $passwort; } // --------------- Dateimanipulation --------------- function delete_file($file) // Datei 100% löschen { $delete = @unlink($file); clearstatcache(); if (@file_exists($file)) { $filesys = eregi_replace("/","\\",$file); $delete = @system("del $filesys"); clearstatcache(); if (@file_exists($file)) { $delete = @chmod ($file, 0775); $delete = @unlink($file); $delete = @system("del $filesys"); } } clearstatcache(); if (@file_exists($file)) { return false; } else { return true; } } // --------------- Bilderstellung / Manipulation --------------- // function createthumb ($bild,$newwidth=120,$ziel="./thumbs/") function createthumb ($bild,$newwidth,$ziel) { $bild2 = $quell.$bild; if(!file_exists($bild2)) return 0; $daten = getimagesize ($bild2); $width = $daten[0]; $height = $daten[1]; $typ = $daten[2]; $newheight = intval($height*$newwidth/$width); $thumb = $ziel."tn_".$bild; switch ($typ) { case "1": echo "Das .GIF Format wird leider nicht unterstützt."; break; case "2": $old = ImageCreateFromJPEG($bild2); $new = imagecreatetruecolor($newwidth,$newheight); imagecopyresampled($new,$old,0,0,0,0,$newwidth,$newheight,$width,$height); ImageJPEG($new,$thumb); break; case "3": $old = ImageCreateFromPNG($bild2); $new = imagecreatetruecolor($newwidth,$newheight); imagecopyresampled($new,$old,0,0,0,0,$newwidth,$newheight,$width,$height); ImagePNG($new,$thumb); break; default: echo "Dateityp ist ungültig!"; } return $thumb; } ?>
Geändert von Adagio (14.04.2003 um 01:17 Uhr)
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Perlen, Adagio.
Danke![]()
Habs grad noch mal aktualisiert![]()
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
das ist aber ne schöne sammlung, sehr hilfreich, danke!
blueGirl
blueGirl
hier auch mal ne funktion meinerseits
enthaelt stripslashes (slashes aus datenbankstring entfernen), htmlentities (< und > ersetzen, damit kein html ausgefuehrt werden kann), nl2br (um absaetze automatisch umzuwandeln) und bbcode (fett/kursiv/unterstrichen fuer textabschnitte - ersetzt einzeln um nicht nur den laengsten string wie mit preg zu ersetzen)Code:<? function convert($slashes,$html,$nl2br,$bbcode,$var) { if(!empty($slashes) && $slashes = 1) { $var = stripslashes($var); } if(!empty($html) && $html = 1) { $var = htmlspecialchars($var); } if(!empty($nl2br) && $nl2br = 1) { $var = nl2br($var); } if(!empty($bbcode) && $bbcode = 1) { $bbcode_array = array('[i ]', '[/i ]', '[b ]', '[/b ]', '[u ]', '[/u ]'); // freizeichen loeschen $replace_array = array('<em>', '</em>', '<strong>', '</strong>', '<span style="text-decoration:underline;">', '</span>'); for($i = 0; $i < count($bbcode_array); $i++) { $var = str_replace($bbcode_array[$i], $replace_array[$i], $var); } } return $var; } ?>
convert(int, int, int, int, $string);
int = 0 = wird nicht umgewandelt
int = 1 = wird umgewandelt
bei der reihenfolge
int1 = stripslashes, slashes (nicht) umwandeln
int2 = htmlspecialchars, < und > (nicht) umwandeln
int3 = nl2br, absaetze (nicht) umwandeln
int4 = bbcode, bbcode (nicht) umwandeln
$string is eben der string in dem ersetzt werden soll.
edit: die freizeichen im bbcode_array muessen geloescht werden, aber sonst schluckts das forum (warum kann man bbcode hier nicht deaktivieren?? menno).
Geändert von HoRnominatoR (05.03.2004 um 20:54 Uhr)
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
wow! das brauch ich grad! danke schön! blueGirl
blueGirl
@Horno:
Wozu sind denn bitte die Zuweisungen in den IF-Abfragen, die IMMER wahr sind? Warum eine Prüfung mit empty, wenn nur ein boolscher Wert benötigt wird? Deshalb verstehe ich die Sache mit dem int(eger) auch nicht... Ja/Nein sind Wahrheitswerte - was anderes wird da doch nicht gebraucht.
Und, warum werden der Funktion str_replace nicht direkt die Arrays übergeben? ...Diese kleine Funktion ist meiner Meinung nach doch "etwas überladen" mit unnötigem Kram, oder?
Gruss
Jan
...da fällt mir ein Glashaus und diverse Steine ein. Just my 2 cents...ich fuer meinen teil habe nicht vor mich weiter von einem fehlerhaften programm, das von inkompetenten entwicklern, [...] zugemuellt wird und es auch nicht fertig bringen dafuer mal ein bugfix zur verfuegung zu stellen, wie es fuer ihre sicherheitsluecken immer tun, unterwerfen zu lassen.
und <strong> ist reichlich veraltet...
BeCreated - Geduld und Zeit für Ihre Wünsche
@stuck
wenn ich genau drueber nachdenke, liegst du wohl richtig, solange 0 != NULL.
sollte ich eventuell mal umschreiben. das mit 1/0 hab ich gemacht, um einfach festzulegen, ob entsprechende konvertierung wirklich vorgenommen oder uebersprungen werden soll, verbesserungsvorschlaege sind bei mir immer gern gesehen. str_replace koennte ich auch mal durch strtr() ersetzen, zwecks vereinfachung.
@feuervogel
falls du wirklich ahnung von dem hast was du da sprichst, welche alternative wuerdest du denn anbieten? (zumal ich die aussagen fuer mehr als falsch halte - es ist aktueller denn je)
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
meine alternative ist:
<b>
<strong> stammt noch aus html 1.0-zeiten und ist somit unzweifelhaft alt.
BeCreated - Geduld und Zeit für Ihre Wünsche
Tja, da muss ich Dich leider enttäuschen. <b> ist nicht mehr Teil des aktuellen XHTML-Standards, sondern <strong>. Erst informieren, dann reden ;-)Zitat von feuervogel
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
<b> und <strong> haben soviel gemein wie java und javascript.
<b> = bold = fett
<strong> = stark betont
fuer die logische auszeichnung eines stark betonten textes gibt es keine alternative zu <strong>. <b> ist ein rein optisches praesentationsmittel und hat in aktuellen dokumenten rein garnichts mehr verloren, da komplett durch CSS ersetzt, noch weniger als frueher, screenreader und braillezeilen werden mehr denn je benutzt, das web wird fuer behinderte immer offener, semantisches markup tritt in den vordergrund. strong ist garnicht mehr wegzudenken, war es auch nie.
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
im grunde hat er mit seiner aussage schon recht - es ist unzweifelhaft alt, aber genau damit auch aktuell, da es schon immer grundlegend fuer ein semantisches markup war. es findet bloss keine ersetzung statt, wozu auch... strong bleibt strong, b bleibt b, das eine hat mit dem anderen nichts zu tun.
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
ah, okay, ich hab mich einfach nur noch nie mit der behindertengerechten darstellung einer webseite auseinander gesetzt...
BeCreated - Geduld und Zeit für Ihre Wünsche
Danke Adagio, deine generatePW Funktion kommt mir gerade gelegen![]()
"Man muss die Welt nicht verstehen, man muss sich nur darin zurechtfinden."
Einstein
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)