 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
08.02.2003, 13:22
|
#1
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
1001 Nützliche Funktionen für PHP
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;
}
?>
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Geändert von Adagio (14.04.2003 um 01:17 Uhr).
|
|
|
14.04.2003, 00:26
|
#2
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
Perlen, Adagio.
Danke 
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
14.04.2003, 01:19
|
#3
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Habs grad noch mal aktualisiert 
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
11.11.2003, 16:15
|
#4
|
|
TP-Senior
Registriert seit: Jan 2002
|
das ist aber ne schöne sammlung, sehr hilfreich, danke!
blueGirl
__________________
blueGirl
|
|
|
05.03.2004, 20:48
|
#5
|
|
TP-Insider
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
|
hier auch mal ne funktion meinerseits
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;
}
?>
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)
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).
__________________
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
Geändert von HoRnominatoR (05.03.2004 um 20:54 Uhr).
|
|
|
08.03.2004, 11:36
|
#6
|
|
TP-Senior
Registriert seit: Jan 2002
|
wow! das brauch ich grad! danke schön! blueGirl
__________________
blueGirl
|
|
|
13.03.2004, 13:14
|
#7
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
@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
Zitat:
|
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.
|
...da fällt mir ein Glashaus und diverse Steine ein. Just my 2 cents...
|
|
|
07.07.2004, 21:30
|
#8
|
|
TP-Senior
Registriert seit: Jun 2004
Ort: leipzig
|
und <strong> ist reichlich veraltet...
__________________
BeCreated - Geduld und Zeit für Ihre Wünsche
|
|
|
07.07.2004, 22:56
|
#9
|
|
TP-Insider
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
|
@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
|
|
|
07.07.2004, 23:34
|
#10
|
|
TP-Senior
Registriert seit: Jun 2004
Ort: leipzig
|
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
|
|
|
08.07.2004, 00:05
|
#11
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Zitat:
|
Zitat von feuervogel
meine alternative ist:
<b>
<strong> stammt noch aus html 1.0-zeiten und ist somit unzweifelhaft alt.
|
Tja, da muss ich Dich leider enttäuschen. <b> ist nicht mehr Teil des aktuellen XHTML-Standards, sondern <strong>. Erst informieren, dann reden ;-)
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
08.07.2004, 00:52
|
#12
|
|
TP-Insider
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
|
<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
|
|
|
08.07.2004, 00:56
|
#13
|
|
TP-Insider
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
|
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
|
|
|
08.07.2004, 09:45
|
#14
|
|
TP-Senior
Registriert seit: Jun 2004
Ort: leipzig
|
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
|
|
|
10.07.2004, 13:17
|
#15
|
|
TP-Insider
Registriert seit: May 2003
Ort: Aachen
|
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)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:57 Uhr.
|
 |