Suche auf lima-city
-
in: Alternative zu mb_detect_encoding() ?
geschrieben von webparade
Alternative zu mb_detect_encoding ... ja wenn iconv verfügbar ist :)
a) Alternative für mb_detect_encoding()
// ------------------------------------------- if(!function_exists('mb_detect_encoding')) { function mb_detect_encoding($string, $enc=null) { static $list = array('utf-8', 'iso-8859-1', 'windows-1251'); foreach ($list as $item) { $sample = iconv($item, $item, $string); if (md5($sample) == md5($string)) { if ($enc == $item) { return true; } else { return $item; } } } return null; } } // -------------------------------------------
B) Alternative für mb_convert_encoding()
// ------------------------------------------- if(!function_exists('mb_convert_encoding')) { function mb_convert_encoding($string, $target_encoding, $source_encoding) { $string = iconv($source_encoding, $target_encoding, $string); return $string; } } // -------------------------------------------
zu a)
Die Liste der Charsets$list = array('utf-8', 'iso-8859-1', 'windows-1251');
kann man ja nach Bedarf anpassen ... siehe: character encodings
PS: gibt sicher auch noch andere Alternativen :)
aber diese mit iconv funktionieren bei mir ganz gut.
EDIT:
die Funktion a) ist nicht 1:1 "richtig" nach-gebaut ...
denn mb_detect_encoding
erwartet ja 3 Argumente (Parameters) ...mb_detect_encoding($string, $encoding_list und $strict)
anstatt $encoding_list habe ich es aber nur mit ein einziger Charset $enc
encoding_list is list of character encoding. Encoding order may be specified by array or comma separated list string.
also.. hier der Code mit Verbesserung
... mit nur ein einzelner Charset als 2tes Argument (ohne Array oder Komma-Liste)
// ------------------------------------------- if(!function_exists('mb_detect_encoding')) { function mb_detect_encoding($string, $enc=null, $strict=false) { $out = null; if (!empty($enc) && $enc != 'null') { $sample = iconv($enc, $enc, $string); if (md5($sample) == md5($string)) { if ($strict === true) { $out = true; } else { $out = $enc; } } } else { static $list = array('utf-8', 'iso-8859-1', 'windows-1251'); ## http://www.php.net/manual/en/mbstring.supported-encodings.php foreach ($list as $item) { $sample = iconv($item, $item, $string); if (md5($sample) == md5($string)) { if ($strict === true) { $out = true; } else { $out = $item; } break; } } } return $out; } } // -------------------------------------------
ist aber immernoch nicht genau 1:1 ... weil im Original, weil als encoding
auch eine Liste mehrerer Charsets $encoding_list als Argument genutzt werden kann
dazu müsste man noch einbauen, ob $enc ein array oder eine Komma getrennte Liste als String ist,
und jenachdem ob davon ein Treffer kommt die Ausgabe (return / $out) anpassen
diese ausführlichere Variante habe ich allerdings nicht getestet,
und ist ja auch noch nicht 1:1 wie das Original (to-do: encoding_list)
.... aber (bei mir) geht's so wie oben (ohne "Verbesserung") ja auch erstmal
:)
-
in: fuktions.php weiße bildschirm
geschrieben von webparade
Wenn du die funktions.php einfach aufrufst, passiert natürlich nichts,
in der Datei werden nur die Funktionen definiert, aber nicht aufgerufen
wenn dann eine weitere Datei machen, zB. test.php
und darin dann die funktions.php includen
und gewünschte Funktion aufrufen (mit passenden Parametern)
und eine Ausgabe der (Eingabe- und) Rückgabe-Werte machen.
<?php include_once('funktions.php'); // --- Ausgangs- / Eingabe-String --- $old_string = 'Hallo das ist ein test blablablablablablablablablablablablablablablablablablablablablablablablablablabla mit langen und kutzen Worten nur zum test Test123test123test123test123test123test123test123test123 mal sehen was damit passiert.' // --- Funktions-Aufruf mit Ausgangs-String und Rückgabe in (neue) Variable zuweisen --- $new_string = shorten($old_string); // --- Ausgabe des Eingabe-String (vor Funktions-Aufruf) print "<p><u>vorher:</u></p>\n"; print "<p>" . $old_string . "</p>\n"; print "<p> </p>\n"; // --- Ausgabe des Ergebnis-String (nach Funktions-Aufruf) print "<p><u>nachher:</u></p>\n"; print "<p>" . $new_string . "</p>\n"; print "<p> </p>\n"; ?>
Error Reporting musst Du hier mit einer .htaccess aktivieren
#### http://www.php.net/manual/de/errorfunc.constants.php #### 32767 in PHP 5.4.x, 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously php_flag display_errors on php_value error_reporting 30719
Details zu dem Zahlenwert siehe http://www.php.net/manual/de/errorfunc.constants.php
:) -
in: Datenbankausgabe in tabelle mit css
geschrieben von webparade
hier nochmal ein Beispiel
HTML-Seite mit CSS Definition für bestimmte Elemente (th, td), für ID (#wrapper)
und auch Beispiele für Klassen (.hintergrund1 und .hintergrund2)
sowie PHP-Code für MySQL Abfrage + Ergebnis in Array + in Tabelle ausgeben
Hinweis: die Datei sollte als .php gespeichert werden (nicht als .html)
Anpassungen müssen gemacht werden bei Datenbank-Verbindung + Auswahl + Name der Tabelle
sowie im Tabellen-Kopf und innerhalb der foreach() Schleife die entsprechenden Felder (Spalten)
hier mal als Beispiel mit 4 Spalten in der MySQL-Tabelle: subject, type, dates, note
der Code sollte selbsterklärend sein ...
<html> <head> <title>Test Tabelle</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> <!-- body { background-color: #FFFFFF; font-family: Verdana, Arial; color: #000000; } #wrapper { text-align: center; } th { font-size: 14px; color: #000066; background-color: #CCCCCC; } td { font-size: 12px; color: #333333; } .hintergrund1 { background-color: #FFFFDD; } .hintergrund2 { background-color: #EFEFEF; } --> </style> </head> <body> <div id="wrapper"> <h2>Tabellen Test</h2> <br /> <br /> <?php // ------------------------------------------------------- // ----- To-Do: Datenbank Verbindung: mysql_connect() // ----- To-Do: Datenbank auswaehlen: mysql_select_db() $db_tabelle = 'deine_tabelle'; // --- hier Name der Tabelle eintragen // ----- MySQL Befehl zur Abfrage erstellen ----- Beispiel ----- $sql_code = "SELECT * FROM ".$db_tabelle.""; ## $sql_code = "SELECT * FROM ".$db_tabelle." WHERE status='1'"; ## $sql_code = "SELECT * FROM ".$db_tabelle." WHERE status='1' LIMIT 10"; // ----- MySQL Abfrage ausfuehren: mysql_query() $result = mysql_query($sql_code); if (!$result) { print "<br />MySQL Fehler .... <br />\n". mysql_error(); exit; } // ----- MySQL Ergebnis ($result) in Array ($daten) schreiben $daten = array(); while($row = mysql_fetch_assoc($result)) { $daten[] = $row; } // ---------- Tabellen Kopf ----------- print '<table width="530" border="0" cellspacing="2" cellpadding="2" bgcolor="#FFFFFF">'."\n"; print '<thead>'."\n"; print ' <tr align="left" valign="top" bgcolor="#DEDEDE">'."\n"; print ' <th width="25%"> Subject </th>'."\n"; print ' <th width="25%"> Type </th>'."\n"; print ' <th width="25%"> Dates </th>'."\n"; print ' <th width="25%"> Note </th>'."\n"; print ' </tr>'."\n"; print '</thead>'."\n"; // ---------- Tabellen Inhalt ----------- print '<tbody>'."\n"; // ---------- START --- foreach() Schleife ----------- $n=1; foreach($daten as $item) { // ----- jede zweite Zeile die Hintergrund CSS Klasse wechseln ----- if ( $n%2 == 0 ) { $tr_class = 'hintergrund2'; } else { $tr_color = 'hintergrund1'; } print ' <tr align="left" valign="top" class="'.$tr_class.'">'."\n"; print ' <td width="25%">' .$item['subject']. '</td>'."\n"; print ' <td width="25%">' .$item['type']. '</td>'."\n"; print ' <td width="25%">' .$item['dates']. '</td>'."\n"; print ' <td width="25%">' .$item['note']. '</td>'."\n"; print ' </tr>'."\n"; $n++; } // ---------- ENDE --- foreach Schleife ----------- print '</tbody>'."\n"; // ---------- Tabellen Ende ----------- print '</table>'."\n"; // ------------------------------------------------------- ?> <br /> <br /> </div> </body> </html>
ich hoffe das hilft weiter :)
-
in: PHP - viele POST Cookies einlesen
geschrieben von webparade
mach doch aus allen POST Variablen einen Serialize String (oder JSON)
und setz dann 1 (ein einziges) Cookie mit diesem String,
den Du nach auslesen ja wieder unserialize bzw json_decode machen kannst
$postdata = serialize($_POST); $key = 'pdata'; setcookie( $key , $postdata , time()+86400 ); // --- und dann ... zum Auslesen $read_data = unserialize($_COOKIE['pdata']); // --------- DEBUG Ausgabe --------- print "<pre>\n"; print_r($read_data); print "</pre>\n";
oder
$postdata = json_encode($_POST); $key = 'pdata'; setcookie( $key , $postdata , time()+86400 ); // --- und dann ... zum Auslesen $read_data = json_decode($_COOKIE['pdata']); // --------- DEBUG Ausgabe --------- print "<pre>\n"; print_r($read_data); print "</pre>\n";
nicht getestet, nur eine Idee :)
-
in: Sitzenbleiben abschaffen
geschrieben von webparade
ich würde das "Sitzenbleiben" auf keinen Fall abschaffen
ich selber bin in der 9. Klasse (Gymnasium) sitzen geblieben,
und das war auch gut so, denn das hat mir die Augen geöffnet,
wäre ich da weiter mit durch-gezogen worden, hätte ich mein Abi wohl nie geschafft
das hat meine Einstellung zur Schule gewaltig geändert, und das nicht negativ,
natürlich hat es mich geärgert und ich habe - auch von meinen Eltern - stress bekommen,
das war mir u.a. auch peinlich und ich wollte danach Zeigen, das ich doch nicht "blöd" bin
ich war nur faul und hatte so eine Scheiß-Egal Einstellung, ... die hat sich ab da geändert
also so manche (so wie ich) brauchen wohl mal einen Tritt in den A....
nicht nur ein "Du Du böse böse" sondern so richtig Kosequenzen ... damit man merkt es geht um was
wenn "nicht wirklich was passiert" macht man eben solange weiter, wie man damit durchkommt,
ich bin heute quasi Dankbar, das ich Durchgefallen / Sitzengeblieben bin, hat mich zwar 1 Jahr
mehr Schule gekostet, aber der "Lohn" war das Aufwachen aus der Scheiß-Egal Einstellung,
-
in: Formatierte Ausgabe von Timestamp-Differenz ?
geschrieben von webparade
Danke für die Tips,
ich habe es jetzt mal so (als Funktion)
// ----------------------------------------------------------- function zeit_format($heute, $termin) { // ---- Zeit-Differenz in Sekunden ---- $secs = (strtotime($termin) - strtotime($heute)); $txzz = ($secs > 0) ? 'future' : 'past'; $secs = abs($secs); // ---- Betrag // ---- Formatierung der Zeit ---- $s = $secs % 60; $m = ($secs / 60) % 60; $h = ($secs / 3600) % 60; $d = ($secs / (3600*24)) % 60; // ---- Einzahl/Mehrzahl ---- $txt_s = ($s==0 || $s>1) ? 'Sekunden' : 'Sekunde'; $txt_m = ($m==0 || $m>1) ? 'Minuten' : 'Minute'; $txt_h = ($h==0 || $h>1) ? 'Stunden' : 'Stunde'; $txt_d = ($d==0 || $d>1) ? 'Tagen' : 'Tag'; // ---- Zukunft/Vergangenheut ---- if($txzz == 'future') { $tnfo = 'beginnt in'; } else { $tnfo = 'vorbei seit'; } // ---- Ausgabe Text (String) ---- $outstr = ''.$tnfo.' '.$d.' '.$txt_d.', '.$h.' '.$txt_h.', '.$m.' '.$txt_m.', '.$s.' '.$txt_s.''; return $outstr; } // -----------------------------------------------------------
Nutzung dann so:
// ----------------------------------------------------------- ## $t_jetzt = '2013-02-18 08:20:05'; $t_jetzt = date('Y-m-d H:i:s'); $termin1 = '2013-02-07 10:20:10'; $termin2 = '2013-02-19 14:21:45'; $tz1 = zeit_format($t_jetzt, $termin1); $tz2 = zeit_format($t_jetzt, $termin2); print "<br /> Aktuelles Datum: <strong>".$t_jetzt."</strong> \n"; print "<br />\n"; print "<br /> Termin 1 --- <strong>".$termin1."</strong> --- ".$tz1." \n"; print "<br /> Termin 2 --- <strong>".$termin2."</strong> --- ".$tz2." \n"; print "<br />\n"; // -----------------------------------------------------------
Ausgabe ist dann so
Aktuelles Datum: 2013-02-18 09:44:43 Termin 1 --- 2013-02-07 10:20:10 --- vorbei seit 10 Tagen, 23 Stunden, 24 Minuten, 33 Sekunden Termin 2 --- 2013-02-19 14:21:45 --- beginnt in 1 Tag, 28 Stunden, 37 Minuten, 2 Sekunden
das scheint ja zu funktionieren :)
Danke
PS: jetzt versuche ich das auch noch als JavaScript mit CountDown zu machen,
also so, dass wenn Sekunden auf 60 hochgezählt, dann Minuten +1 erhöhen
bzw. so dass nachdem Sekunden auf 00 runter, dann Minuten -1 anpassen
usw.
... aber das ist wohl dann ein anderes (neues) Thema,
mal sehen was ich bei dem 2ten Link von @hackyourlife finde
ABER ... ich würde es ja gerne ohne jQuery hinbekommen ... ;)
-
in: Formatierte Ausgabe von Timestamp-Differenz ?
geschrieben von webparade
Hallo
wie kann ich eine Timestamp-Differenz formatiert ausgeben,
damit ich sowas bekomme wie: noch / seit xx Tage yy Stunden zz MInuten ss Sekunden
$timenow = time(); // --- Start-Datum (2013-02-18 08:43:05) = aktuelle Zeit $termin1 = '2013-02-07 10:22:10'; // --- Ziel-Datum 1 = Vergangenheit $termin2 = '2013-03-10 14:30:45'; // --- Ziel-Datum 2 = in der Zukunft $time1 = strtotime($termin1); $time2 = strtotime($termin2); $tdx1 = ($timenow - $time1); $tdx2 = ($timenow - $time2); print "<br />\n"; print "<br />".$tdx1."\n"; // --- Abstand in Sekunden (positive Zahl) print "<br />".$tdx2."\n"; // --- Abstand in Sekunden (negative Zahl) print "<br />\n";
wie komme ich jetzt bei Ausgabe zu sowas wie
Termin 1 ist vor xx Tage yy Stunden zz MInuten ss Sekunden abgelaufen (Vergangenheit)
Termin 2 wird in xx Tage yy Stunden zz MInuten ss Sekunden beginnen (in der Zukunft)
Danke