kostenloser Webspace werbefrei: lima-city


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>&nbsp;</p>\n"; 
    
    // --- Ausgabe des Ergebnis-String (nach Funktions-Aufruf) 
    print "<p><u>nachher:</u></p>\n"; 
    print "<p>" . $new_string . "</p>\n"; 
    print "<p>&nbsp;</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

Login zum Webhosting ohne Werbung!