kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: Text in 2 Teile aufteilen

    geschrieben von kataloge

    webaffe schrieb:
    Du berechnest in welchem Abstand von Zeichen ein Absatz sein muss und veränderst dementsprechend in einer for() Schleife die Anzahl und den Ort der Absätze


    Hallo

    ja, habe schon mit for Schleife rumprobiert,
    Problem ist,nach dem Text abschneiden bei letzes Leerzeichen in 300 Zeichen Block
    muss die nächste Start-Pos um die (nach dem Leerzeichen) nicht verwendeten Zeichen
    angepasst werden, also nächste Start-Pos um diese Anzahl verschieben
    garnicht so einfach

    und dann hab was gefunden, was das gleiche macht wie meine for Schleife sollte
    wordwrap()

    $partlen   = 300;    // --- länge Je Text-Block ---
    $trenner   = '~';    // --- ein Trenner-Zeichen, das nicht im $text vorkommt 
    
    $neuertext = wordwrap( $text, $partlen, $trenner );
    
    $textarray = explode($trenner,$neuertext); 
    
    ## echo "<pre>\n"; 
    ## print_r($textarray);  
    ## echo "</pre>\n"; 
    
    foreach($textarray as $tpart) { 
        echo "<p>".$tpart."</p>\n"; 
    }


    ... eigentlich ganz einfach


    ABER noch nicht schön .... die Absätze werden mitten im Satz umgebrochen,

    lieber wäre mir Umbrauch (neuer Text-Teil) nicht bei Leerzeichen, sondern bei Satzende (. Punkt)
    nur Probleme dabei sind,
    was ist, wenn ein Satz länger als 300 Zeichen ist, also kein Punkt kommt ...
    dann muss es halt doch das letze Leerzeichen nehmen,
    und was wenn im Text ein Zahlenwert wie 12.5 steht bzw. anderer Text mit Punkt der kein Satzende ist
    ... evtl mit Punkt + Leerzeichen als Trenner




  • in: Text in 2 Teile aufteilen

    geschrieben von kataloge

    Danke
    so habe ich es jetzt gemacht und es klappt ganz gut

    $dlength      = strlen($data['descr']); 
    $halblen      = ceil($dlength/2); 
    $splitpos     = strpos($data['descr'], " ", $halblen);
    $descparts    = str_split($data['descr'], $splitpos);
    
    $desc_part1   = trim($descarr[0]);
    $desc_part2   = trim($descarr[1]);
    
    echo "<p> ".$desc_part1." </p> \r\n";   // ----- Absatz 1 ----- 
    echo "<p> ".$desc_part1." </p> \r\n";   // ----- Absatz 2 -----


    aber bei sehr langen Texten würde ich gerne noch mehr Absätze machen,
    quasi die Anzahl der Absätze (Text-Teile) dynamisch je nach Text-Gesamt-Länge.

    Ein Absatz soll dabei z.B. maximal 300 Zeichen haben
    wenn also der Text 1000 Zeichen hat, dann will ich 4 Absätze bekommen
    ... wie gehe ich das am besten an?

  • in: Funktion remove_accent und title_slug

    geschrieben von kataloge

    Aber wie bekomme ich den String, den ich filtern will
    in das passende Format (die passende Codierung) ?

    Wenn ich als Ausgangs-String iso-8859-1 habe
    und diesen mit utf8_encode() behandle, funktioniert das nicht
    weil viele Zeichen falsch oder als ? im neuen String ankommen ?!

    Beispiel Euro-Zeichen

    € = Ausgangs-Teichen
    € = nach utf8_encode('€');
    ? = nach utf8_decode('€');

    Soweit ich weiss ist aber das € Zeichen in UTF-8 so: €
    zumindest wird bei einer charset=utf-8 Seite damit das € Zeichen angezeigt

    ? ...

    bringt es was alle Zeichen im Text zum Filtern mit chr() Werten von ord() zu vergleichen?

    function string_to_ascii($string) {
    $ascii = array();
    
    for ($i = 0; $i < strlen($string); $i++) {
    $ascii[] = ord($string[$i]);
    }
    
    return($ascii);
    }


    und damit die 2 Arrays in ord() Werte umwandeln

    foreach($a as $itema) {
      $asciistr = string_to_ascii($itema); 
      $letter = ''; 
      foreach($asciistr as $aitem) { 
      $a_letter .= chr($aitem); 
      } 
    $aord[] = $a_letter;
    }



    foreach($b as $itemb) {
      $asciistr = string_to_ascii($itemb); 
      $letter = ''; 
      foreach($asciistr as $bitem) { 
      $b_letter .= chr($bitem); 
      } 
    $bord[] = $b_letter;
    }


    bringt das was?
    ... oder wie kann ich Strings immer "richtig" zu UTF-8 konvertieren
    bei einfachem utf8_encode() kommt zu oft Müll raus ... ?!


  • in: Funktion remove_accent und title_slug

    geschrieben von kataloge

    Hallo

    Hier mal ein Codeschnipsel ... ein Tutorial .... ein Tipp .... 2 Funktionen

    Funktion: remove_accent() ......für:
    Buschstaben mit Akzent oder Zirkumflex oder etc. zu "normalen" Buchstaben machen

    und

    Funktion: title_slug() ..... für
    Titel von Seiten (für Mod_Rewrite) zu Dateinamen (SEO-URLs) machen


    Quellcode:

    <?php 
    // ------------------------------------------------- 
    // ----- remove_accent - ohne deutsche Umlaute ----- 
    // ------------------------------------------------- 
    
    function remove_accent($str) { 
    
    $a = array( 'À', 'Á', 'Â', 'Ã', 'Å', 'Æ' , 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ø', 'Ù', 'Ú', 'Û', 'Ý', 'à', 'á', 'â', 'ã', 'å', 'æ' , 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ø', 'ù', 'ú', 'û', 'ý', 'ÿ', 'Ā', 'ā', 'Ă', 'ă', 'Ą', 'ą', 'Ć', 'ć', 'Ĉ', 'ĉ', 'Ċ', 'ċ', 'Č', 'č', 'Ď', 'ď', 'Đ', 'đ', 'Ē', 'ē', 'Ĕ', 'ĕ', 'Ė', 'ė', 'Ę', 'ę', 'Ě', 'ě', 'Ĝ', 'ĝ', 'Ğ', 'ğ', 'Ġ', 'ġ', 'Ģ', 'ģ', 'Ĥ', 'ĥ', 'Ħ', 'ħ', 'Ĩ', 'ĩ', 'Ī', 'ī', 'Ĭ', 'ĭ', 'Į', 'į', 'İ', 'ı', 'IJ' , 'ij' , 'Ĵ', 'ĵ', 'Ķ', 'ķ', 'Ĺ', 'ĺ', 'Ļ', 'ļ', 'Ľ', 'ľ', 'Ŀ', 'ŀ', 'Ł', 'ł', 'Ń', 'ń', 'Ņ', 'ņ', 'Ň', 'ň', 'ʼn', 'Ō', 'ō', 'Ŏ', 'ŏ', 'Ő', 'ő', 'Œ' , 'œ' , 'Ŕ', 'ŕ', 'Ŗ', 'ŗ', 'Ř', 'ř', 'Ś', 'ś', 'Ŝ', 'ŝ', 'Ş', 'ş', 'Š', 'š', 'Ţ', 'ţ', 'Ť', 'ť', 'Ŧ', 'ŧ', 'Ũ', 'ũ', 'Ū', 'ū', 'Ŭ', 'ŭ', 'Ů', 'ů', 'Ű', 'ű', 'Ų', 'ų', 'Ŵ', 'ŵ', 'Ŷ', 'ŷ', 'Ÿ', 'Ź', 'ź', 'Ż', 'ż', 'Ž', 'ž', 'ſ', 'ƒ', 'Ơ', 'ơ', 'Ư', 'ư', 'Ǎ', 'ǎ', 'Ǐ', 'ǐ', 'Ǒ', 'ǒ', 'Ǔ', 'ǔ', 'Ǖ', 'ǖ', 'Ǘ', 'ǘ', 'Ǚ', 'ǚ', 'Ǜ', 'ǜ', 'Ǻ', 'ǻ', 'Ǽ' , 'ǽ' , 'Ǿ', 'ǿ' ); 
    $b = array( 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'D', 'N', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'Y', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'y', 'y', 'A', 'a', 'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c', 'C', 'c', 'C', 'c', 'D', 'd', 'D', 'd', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g', 'G', 'g', 'G', 'g', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'IJ', 'ij', 'J', 'j', 'K', 'k', 'L', 'l', 'L', 'l', 'L', 'l', 'L', 'l', 'l', 'l', 'N', 'n', 'N', 'n', 'N', 'n', 'n', 'O', 'o', 'O', 'o', 'O', 'o', 'OE', 'oe', 'R', 'r', 'R', 'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's', 'S', 's', 'T', 't', 'T', 't', 'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'W', 'w', 'Y', 'y', 'Y', 'Z', 'z', 'Z', 'z', 'Z', 'z', 's', 'f', 'O', 'o', 'U', 'u', 'A', 'a', 'I', 'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'A', 'a', 'AE', 'ae', 'O', 'o' ); 
    
    
    $str = str_replace($a, $b, $str);
    
    return $str; 
    
    }
    
    
    
    // ------------------------------------------------- 
    // ------- title_slug - mit deutsche Umlaute ------- 
    // ------------------------------------------------- 
    
    function title_slug($str) { 
    
    $ua = array( 'Ä' , 'Ö' , 'Ü' , 'ä' , 'ö' , 'ü' , 'ß' , '€' ); 
    $ub = array( 'Ae', 'Oe', 'Ue', 'ae', 'oe', 'ue', 'ss', 'EUR' ); 
    
    $str = str_replace($ua, $ub, $str); 
    
    $str = remove_accent($str); 
    
    $pa = array('/[^a-zA-Z0-9 -]/', '/[ -]+/', '/^-|-$/'); 
    $pb = array('', '-', ''); 
    
    $str = preg_replace($pa, $pb, $str);
    
    $str = strtolower($str); 
    
    return $str; 
    
    }
    
    // ------------------------------------------------- 
    ?>




    Wenn ich den Quellcode in meinen Editor (Ur-alt Dreamweaver 4) kopiere,
    dann sehe ich folgenden Code (???) .. am Anfang siehts noch gut aus .. aber dann

    ... 
    $a = array( 'À', 'Á', 'Â', 'Ã', 'Å', 'Æ' , 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ø', 'Ù', 'Ú', 'Û', 'Ý', 'à', 'á', 'â', 'ã', 'å', 'æ' , 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ø', 'ù', 'ú', 'û', 'ý', 'ÿ', 'A-', 'a-', 'A(', 'a(', 'A;', 'a;', 'C'', 'c'', 'C^', 'c^', 'C.', 'c.', 'C(', 'c(', 'D(', 'd(', '?', '?', 'E-', 'e-', 'E(', 'e(', 'E.', 'e.', 'E;', 'e;', 'E(', 'e(', 'G^', 'g^', 'G(', 'g(', 'G.', 'g.', 'G,', 'g,', 'H^', 'h^', '?', '?', 'I~', 'i~', 'I-', 'i-', 'I(', 'i(', 'I;', 'i;', 'I.', '?', 'IJ' , 'ij' , 'J^', 'j^', 'K,', 'k,', 'L'', 'l'', 'L,', 'l,', 'L(', 'l(', 'L.', 'l.', '?', '?', 'N'', 'n'', 'N,', 'n,', 'N(', 'n(', ''n', 'O-', 'o-', 'O(', 'o(', 'O"', 'o"', 'Œ' , 'œ' , 'R'', 'r'', 'R,', 'r,', 'R(', 'r(', 'S'', 's'', 'S^', 's^', 'S,', 's,', 'Š', 'š', 'T,', 't,', 'T(', 't(', '?', '?', 'U~', 'u~', 'U-', 'u-', 'U(', 'u(', 'U*', 'u*', 'U"', 'u"', 'U;', 'u;', 'W^', 'w^', 'Y^', 'y^', 'Ÿ', 'Z'', 'z'', 'Z.', 'z.', 'Ž', 'ž', 's', 'ƒ', 'O+', 'o+', 'U+', 'u+', 'A(', 'a(', 'I(', 'i(', 'O(', 'o(', 'U(', 'u(', 'U"-', 'u"-', 'U"'', 'u"'', 'U"(', 'u"(', 'U"`', 'u"`', 'A*'', 'a*'', 'AE'' , 'ae'' , 'O/'', 'o/'' ); 
    ...


    also zum Teil voll der Blödsinn .... ?!?!? derdas Array unbrauchbar macht ... 'u"-', 'U"'', 'u"'', ...
    oder mancha auch nur als ? .... 't(', '?', '?', 'U~', ...

    daher hier nochmal in anderer Formatierung:

    <?php 
    // ------------------------------------------------- 
    // ----- remove_accent - ohne deutsche Umlaute ----- 
    // ------------------------------------------------- 
    
    function remove_accent($str) { 
    
    $a = array( 'À', 'Á', 'Â', 'Ã', 'Å', 'Æ' , 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ø', 'Ù', 'Ú', 'Û', 'Ý', 'à', 'á', 'â', 'ã', 'å', 'æ' , 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ø', 'ù', 'ú', 'û', 'ý', 'ÿ', 'Ā', 'ā', 'Ă', 'ă', 'Ą', 'ą', 'Ć', 'ć', 'Ĉ', 'ĉ', 'Ċ', 'ċ', 'Č', 'č', 'Ď', 'ď', 'Đ', 'đ', 'Ē', 'ē', 'Ĕ', 'ĕ', 'Ė', 'ė', 'Ę', 'ę', 'Ě', 'ě', 'Ĝ', 'ĝ', 'Ğ', 'ğ', 'Ġ', 'ġ', 'Ģ', 'ģ', 'Ĥ', 'ĥ', 'Ħ', 'ħ', 'Ĩ', 'ĩ', 'Ī', 'ī', 'Ĭ', 'ĭ', 'Į', 'į', 'İ', 'ı', 'IJ' , 'ij' , 'Ĵ', 'ĵ', 'Ķ', 'ķ', 'Ĺ', 'ĺ', 'Ļ', 'ļ', 'Ľ', 'ľ', 'Ŀ', 'ŀ', 'Ł', 'ł', 'Ń', 'ń', 'Ņ', 'ņ', 'Ň', 'ň', 'ʼn', 'Ō', 'ō', 'Ŏ', 'ŏ', 'Ő', 'ő', 'Œ' , 'œ' , 'Ŕ', 'ŕ', 'Ŗ', 'ŗ', 'Ř', 'ř', 'Ś', 'ś', 'Ŝ', 'ŝ', 'Ş', 'ş', 'Š', 'š', 'Ţ', 'ţ', 'Ť', 'ť', 'Ŧ', 'ŧ', 'Ũ', 'ũ', 'Ū', 'ū', 'Ŭ', 'ŭ', 'Ů', 'ů', 'Ű', 'ű', 'Ų', 'ų', 'Ŵ', 'ŵ', 'Ŷ', 'ŷ', 'Ÿ', 'Ź', 'ź', 'Ż', 'ż', 'Ž', 'ž', 'ſ', 'ƒ', 'Ơ', 'ơ', 'Ư', 'ư', 'Ǎ', 'ǎ', 'Ǐ', 'ǐ', 'Ǒ', 'ǒ', 'Ǔ', 'ǔ', 'Ǖ', 'ǖ', 'Ǘ', 'ǘ', 'Ǚ', 'ǚ', 'Ǜ', 'ǜ', 'Ǻ', 'ǻ', 'Ǽ' , 'ǽ' , 'Ǿ', 'ǿ' ); 
    
    $b = array( 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'D', 'N', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'Y', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'y', 'y', 'A', 'a', 'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c', 'C', 'c', 'C', 'c', 'D', 'd', 'D', 'd', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g', 'G', 'g', 'G', 'g', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'IJ', 'ij', 'J', 'j', 'K', 'k', 'L', 'l', 'L', 'l', 'L', 'l', 'L', 'l', 'l', 'l', 'N', 'n', 'N', 'n', 'N', 'n', 'n', 'O', 'o', 'O', 'o', 'O', 'o', 'OE', 'oe', 'R', 'r', 'R', 'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's', 'S', 's', 'T', 't', 'T', 't', 'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'W', 'w', 'Y', 'y', 'Y', 'Z', 'z', 'Z', 'z', 'Z', 'z', 's', 'f', 'O', 'o', 'U', 'u', 'A', 'a', 'I', 'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'A', 'a', 'AE', 'ae', 'O', 'o' ); 
    
    
    $str = str_replace($a, $b, $str);
    
    return $str; 
    
    }
    
    
    
    // ------------------------------------------------- 
    // ------- title_slug - mit deutsche Umlaute ------- 
    // ------------------------------------------------- 
    
    function title_slug($str) { 
    
    $ua = array( 'Ä' , 'Ö' , 'Ü' , 'ä' , 'ö' , 'ü' , 'ß' , '€' ); 
    $ub = array( 'Ae' , 'Oe' , 'Ue' , 'ae' , 'oe' , 'ue' , 'ss' , 'EUR' ); 
    
    $str = str_replace($ua, $ub, $str); 
    
    $str = remove_accent($str); 
    
    $pa = array('/[^a-zA-Z0-9 -]/', '/[ -]+/', '/^-|-$/'); 
    $pb = array('', '-', ''); 
    
    $str = preg_replace($pa, $pb, $str);
    
    $str = strtolower($str); 
    
    return $str; 
    
    }
    
    // ------------------------------------------------- 
    ?>


    aber anstatt der hier gezeigten Platzhalter wie  oder  sehe ich in meinem Editor
    die entsprechenden Sonderzeichen, die damit abgebildet werden

    auch wenn ich mir den Code hier wieder raus-kopiere
    also kann das Forum einfach ein paar Zeichen nur ala  oder  etc. darstellen,
    die kommen aber bei copy+paste anscheinend doch "richtig" im Editor an ...



  • in: Session Laufzeit einstellen

    geschrieben von kataloge

    ok, verstehe, dafür brauche ich also Cookies, damit auch nach verlassen des Browsers die Daten verfügbar bleiben
    das bekomme ich hin

    aber nur zum Verständniss:
    Warum ist bei meinem Test die Session nach 120 Sekunden noch aktiv ?!

    sollte nicht durch: php_value session.gc_maxlifetime 120 in der .htaccess
    nach genau 120 Sekunden die Session vom System "gelöscht" werden ?
  • in: Session Laufzeit einstellen

    geschrieben von kataloge

    Hallo

    ich möchte auf dem Webspace die Lebensdauer von SESSIONs einstellen

    habe in der .htaccess zum Testen mal 120 Sekunden eingestellt

    php_value session.gc_maxlifetime 120


    der Wert scheint angenommen zu werden, demm mit
    $szeit = ini_get('session.gc_maxlifetime');
    bekomme ich den Wert 120

    Aber wenn ich jetzt eine Session Starte (und darin Variablen zuweise = Login-Daten)
    dann ist die Session ABER auch nach 120 Sekunden noch da und der Login noch aktiv ?!

    was ist falsch?
    was muss ich tun, damit ich die Lebensdauer einer Session bestimmen kann ?

    PS: ja,ich kann den Timestamp der Ablauf-Zeit beim Login / anlegen der Session speichern,
    und wenn aktueller Timestamp größer ist als der gespeicherte dann session_unset()
    Aber mir geht es nicht um das Beenden so kurzer Sessions (120 Sec) sondern ich will
    damit dann eher längere Laufzeiten machen, wenn möglich auch mehrere Tage lange
    die 120 Sec sind nur zum Testen ob es überhaupt geht

  • in: modulo % Rechnung und Zahlensysteme (Rechnen mit Rest)

    geschrieben von kataloge

    Hallo

    habe das mal ausprobiert, und festgestellt, dass man auch bei Stunde den Wert 1 abziehen muss


    hier nochmal 2 Funktionen

    Funktion getTerminRest()
    .... mit 2 Parameter (Ausgangs-Termin und Ziel-Termin als Timestamp)


    <?php
    // --------------------------------------------------- 
    
    
    ## $termin1 = time(); // aktueller Timestamp oder Timestamp von Ausgangs-Datum 
    ## $termin2 = strtotime(2011-12-24 00:00:00);  // Termin in der Zukunft als Timestamp 
    ## oder:  $termin2 = mktime ($hour, $minute, $second, $month, $day, $year); 
    
    function getTerminRest($termin1, $termin2) { 
    	
    	$seconds = ($termin2 - $termin1);
    	$difsec = abs($seconds); 
    	
    	$ergz = date_parse(date("Y-m-d H:i:s", ($difsec) ));
    	
    	$ergz['year']  = ($ergz['year']  - 1970); 
    	$ergz['month'] = ($ergz['month'] - 1); 
    	$ergz['day']   = ($ergz['day']   - 1); 
    	$ergz['hour']  = ($ergz['hour']  - 1); 
    	
    	$ausgabe = ''; 
    	
    	if ( 1 < $ergz['year'] )        {  $ausgabe .= "".$ergz['year']." Jahre und "; }
    	elseif ( $ergz['year'] == 1 )   {  $ausgabe .= "".$ergz['year']." Jahr und "; }
    	
    	if ( 1 < $ergz['month'] )       {  $ausgabe .= "".$ergz['month']." Monate und "; }
    	elseif ( $ergz['month'] == 1 )  {  $ausgabe .= "".$ergz['month']." Monat und "; }
    	
    	if ( 1 < $ergz['day'] )         {  $ausgabe .= "".$ergz['day']." Tage und "; }
    	elseif ( $ergz['day'] == 1 )    {  $ausgabe .= "".$ergz['day']." Tag und "; }
    	
    	if ( 1 < $ergz['hour'] )        {  $ausgabe .= "".$ergz['hour']." Stunden und "; }
    	elseif ( $ergz['hour'] == 1 )   {  $ausgabe .= "".$ergz['hour']." Stunde und "; }
    	
    	if ( 1 < $ergz['minute'] )      {  $ausgabe .= "".$ergz['minute']." Minuten und "; }
    	elseif ( $ergz['minute'] == 1 ) {  $ausgabe .= "".$ergz['minute']." Minute und "; }
    	
    	if ( 1 < $ergz['second'] )      {  $ausgabe .= "".$ergz['second']." Sekunden"; }
    	elseif ( $ergz['second'] == 1 ) {  $ausgabe .= "".$ergz['second']." Sekunde"; }
    	
    	
    	if ( 0 < $seconds ) { 
    	$outstr = "Es sind noch ".$ausgabe." bis zum Termin."; 
    	}
    	else { 
    	$outstr = "Der Termin ist schon ".$ausgabe." abgelaufen."; 
    	}
    
    return $outstr; 
    }
    
    
    // --------------------------------------------------- 
    ?>





    Funktion getRestZeit()
    .... mit nur der Differenz in Sekunden als Parameter

    <?php
    // --------------------------------------------------- 
    
    
    
    ## $difsec = ($timestamp2 - $timestamp1);  // --- Differenz zweier Timestamps in Sekunden
    
    
    function getRestZeit($seconds) { 
    	
    	$difsec = abs($seconds); 
    	$ergz = date_parse(date("Y-m-d H:i:s", ($difsec) ));
    	
    	$ergz['year']  = ($ergz['year']  - 1970); 
    	$ergz['month'] = ($ergz['month'] - 1); 
    	$ergz['day']   = ($ergz['day']   - 1); 
    	$ergz['hour']  = ($ergz['hour']  - 1); 
    	
    	$ausgabe = ''; 
    	
    	if ( 1 < $ergz['year'] )        {  $ausgabe .= "".$ergz['year']." Jahre und "; }
    	elseif ( $ergz['year'] == 1 )   {  $ausgabe .= "".$ergz['year']." Jahr und "; }
    	
    	if ( 1 < $ergz['month'] )       {  $ausgabe .= "".$ergz['month']." Monate und "; }
    	elseif ( $ergz['month'] == 1 )  {  $ausgabe .= "".$ergz['month']." Monat und "; }
    	
    	if ( 1 < $ergz['day'] )         {  $ausgabe .= "".$ergz['day']." Tage und "; }
    	elseif ( $ergz['day'] == 1 )    {  $ausgabe .= "".$ergz['day']." Tag und "; }
    	
    	if ( 1 < $ergz['hour'] )        {  $ausgabe .= "".$ergz['hour']." Stunden und "; }
    	elseif ( $ergz['hour'] == 1 )   {  $ausgabe .= "".$ergz['hour']." Stunde und "; }
    	
    	if ( 1 < $ergz['minute'] )      {  $ausgabe .= "".$ergz['minute']." Minuten und "; }
    	elseif ( $ergz['minute'] == 1 ) {  $ausgabe .= "".$ergz['minute']." Minute und "; }
    	
    	if ( 1 < $ergz['second'] )      {  $ausgabe .= "".$ergz['second']." Sekunden"; }
    	elseif ( $ergz['second'] == 1 ) {  $ausgabe .= "".$ergz['second']." Sekunde"; }
    	
    	
    	if ( 0 < $seconds ) { 
    	$outstr = "Es sind noch ".$ausgabe." bis zum Termin."; 
    	}
    	else { 
    	$outstr = "Der Termin ist schon ".$ausgabe." abgelaufen."; 
    	}
    
    return $outstr; 
    }
    
    
    // --------------------------------------------------- 
    ?>



    ich hoffe das stimmt so

    zumindest hat es bei meinen Versuchen nur mit dem Zusatz

    $ergz['hour'] = ($ergz['hour'] - 1);

    richtige Ergebnisse geliefert, ohne das war es immer um genau die eine Stunde zuviel

    startet der Unix Timestamp mit einer Stunde ... also 1970-01-01 (01:00:00)
    oder warum war bei meinen Tests immer die eine Stunde zuviel ?


  • in: Datei ab bestimmter Zeile (mit LImit) auslesen

    geschrieben von kataloge

    Ja, gute Idee

    gleich beim Einlesen alle 100 Zeilen eine neue Sub-Datei speichern

    ich hoffe mal, dass das keine Probleme macht mit Memory-Limit oder Script-Laufzeit
    weil dazu muss ich ja doch alle Zeilen der grossen Datei komplett auslesen
    und dann auch noch (alle x Zeilen) inneue Datei Speichern

    deshalb hatte ich ja die Idee, jede Zeile nur ein paar Zeichen auslesen
    while($line = fgets($fpo, 64)) { ... }
    und den Zeiger vom Anfang jeder 100sten Zeile zwischen zu speichern

    Frage mich aber gerade, ob ich beim Lesen von nur paar Zeichen je Zeile
    überhaupt auf den richtigen zeiger kommen kann, gwenn dann brauche ich ja
    die Position des letzten \n (Zeilenumbruch) alle 100 Zeilen
    denn ein Zeichen für "Zeilenanfang" gibt es soweit ich weiss garnicht, oder?

    habe Deinen Code mal getestet und ein paar Änderungen gemacht

    als Funktion (noch ausbaufähig)

    <?php 
    // ------------------------------------------------- 
    
    function getSubFiles ($quelldatei, $z=100, $csvhead=false) { 
    
    $FileHandle = fopen($quelldatei, 'r');
    
    $zcount  = 0;        // Zeilen-Zaehler
    $fcount  = 1;        // Datei-Zehler 
    $zlimit  = $z;       // Zeilen Limit pro Datei 
    $savedir = 'data";   // Speicher-Verzeichnis
    
    $sub_Datei = $savedir.'/subdaten_'.$fcount.'.txt';  // ---- Erste Sub-Datei 
    $HandleSub = fopen($sub_Datei, 'w', 0666);
    
    if ($csvhead === true) { 
    $kopf = fgets($FileHandle, 2048); 
    fwrite($HandleSub,$kopf); // ---- Kopf-Zeile schreiben 
    } 
    
    	while($line = fgets($FileHandle, 2048)) { 
    	
    	$zcount++;  // --- neue Zeile 
    	$rest = ($zcount % $zlimit); 
    
    		if ($rest == 0) { 
    		
    		fclose($HandleSub);  // ---- Alte Sub-Datei schliessen 
    		$fcount++; 
    		
    		$sub_Datei = $savedir.'/subdaten_'.$fcount.'.txt';  // ---- Neue Sub-Datei 
    		## echo "<br /> ... neue Datei: <strong>".$sub_Datei."</strong> \r\n"; 
    		$HandleSub = fopen($sub_Datei, 'w', 0666);
    		
    		if ($csvhead === true) { 
    		fwrite($HandleSub,$kopf); // ---- Kopf-Zeile schreiben 
    		}
    	
    		}
    	
    	fwrite($HandleSub,$line); // ---- Zeile in Sub-Datei schreiben 
    	
    	}
    
    fclose($HandleSub); // ---- Letzte Sub-Datei schliessen 
    fclose($FileHandle);
    
    $out = array($zcount,$fcount); 
    
    return $out; 
    
    }
    
    // ------------------------------------------------- 
    
    
    
    /* ---------------
    * 
    *   Drei (3) Parameter bei Funktion: getSubFiles
    * 
    *   Parameter1  =  Quell-Datei (filename / Dateiname) 
    *   Parameter2  =  Zeilen pro Sub-Datei (int / Zahl) 
    *   Parameter3  =  CSV Daten Kopf-Zeile (true oder false) 	
    * 
    ------------- */
    
    
    $qdatei = 'datenlsite.txt'; 
    $zeilen = 100; 
    
    $erg = getSubFiles($qdatei, $zeilen, true); 
    
    echo "<br /> Gesamt ".$erg[0]." Zeilen. \r\n"; 
    echo "<br /> Gesamt ".$erg[1]." Sub-Dateien. \r\n"; 
    
    
    // ------------------------------------------------- 
    ?>


    wenn dritter Parameter TRUE ist, dann wird die erste Zeile aus der Quelldatei
    in jede SubDatei auch als erste Zeile geschrieben (für. CSV Daten)


    aber wie gesagt vermute ich, dass dies bei sehr grossen Datein
    wegen Memory-Limit oder Script-Laufzeit zu Problemen (Abbruch) kommt

  • in: Datei ab bestimmter Zeile (mit LImit) auslesen

    geschrieben von kataloge

    ja, das Prinzip ist genau was ich brauche

    aber wie bekommr ich die Zeiger-Position von z.B. Anfang der Zeile 101 ... oder Zeile 201 ... etc. ?

    also doch erstmal die ganze Datei durchgehen,
    alle 100 Zeilen den Zeiger "zwischenspeichern" (in eine info-textdatei)
    und dann könnte ich mit den Zeigern arbeiten

    $datei = 'datenliste.txt'; 
    
    $fpo = fopen($datei, "r");  
    
    $zeigerdaten = ''; 
    $zeilen = 0; 
    while($line = fgets($fpo, 128)) {   // ---- Quelldatei Zeilen gekützt einlesen 
    $zeilen++;  // ---- Zaehler erhoehen (neue Zeile) 
    
    if ($zeilen == 100) {   // ---- Zaehler Limit erreicht 
    
    // ---- ? ... Zeiger am Anfang dieser Zeile ermitteln ?? .... ftell() ... ? 
    
    $zeigerdaten .= $zeigerwert.'|';   // ---- Zeiger-Wert in String mit Trenner ablegen  
    $zeilen = 0;   // ---- Zaehler zuruecksetzen 
    }
    
    }
    
    $zeigerdaten = rtrim($zeigerdatenm'|'); 
    
    $zinfo = 'zeigerinfo.txt'; 
    $fpz = fopen($zinfo, "w"); 
    fwrite($fpz,$zeiger.'|');



    Zeiger am Anfang dieser Zeile ermitteln ?? .... ftell() .
    ftell() von WAS ? ... von $fpo ?? ... Anfang der Zeile ?


    und dann zum Lesen der Daten auf Seiten (je Seite 100 Zeilen)

    $zeiger_string = file_get_contents($zinfo); 
    $zeiger_array = explode('|',$zeiger_string); 
    $zeiger_anzahl = count($zeiger_array); 
    
    // --- Seiten blaettern ... Auslesen mit fseek() aus Werte in $zeiger_array


    so ungefähr, aber ich bekomms nicht hin (Zeiger an Zeilenanfang alle 100 Zeilen)


    EDIT: ok, mit file_get_contents() kann ich dann auch die eigentlichen Daten mit Zeiger-Pos lesen
    aber dazu brauche ich ja zuerst einmal die Zeiger-Positionen alle 100 Zeilen ... ?!

  • in: Datei ab bestimmter Zeile (mit LImit) auslesen

    geschrieben von kataloge

    Hallo

    ich habe eine .txt Datei mit sehr vielen Zeilen

    wie kann ich die Daten ab einer bestimmten Zeile (mit Limit = 100) auslesen

    also so, dass ich je Aufruf nicht die komplette Datei einlesen muss
    sondern z.B. ab Zeile 101 bis Zeile 200 ... oder ab Zeile 201 bis Zeile 300 ... etc.

    Wenn ich versuche die komplette Datei in ein Array zu lesen,
    und erst dann in Teile zu zerlegen dann reicht der Speicher nicht aus ...
    ---> Allowed memory size of 67108864 bytes exhausted

    gibt es eine Möglichkeit beim Datei-Auslesen für "starte bei Zeile n" ??
    das Ende (Limit) ist dann ja kein Problem mit Zähler und break();

    wie setze ich den "Zeiger" genau an den Anfang einer bestimmten Zeile?
  • in: Text in 2 Teile aufteilen

    geschrieben von kataloge

    Hallo

    ich habe in einem Array Texte (String) die ca. zwischen 200 und 800 Zeichen lang sind.

    Wie kann ich den Text in 2 Absätze aufzeilen, die etwa gleich gross sind
    ... ohne dass der Text mitten im Wort abgeschnitten wird ?

    bisher habe ich es so

    $dlength = strlen($data['descr']); 
    $halblen = ceil($dlength/2); 
    $descarr = str_split( $data['descr'], $halblen );
    
    echo "<p> ".$descarr[0]." </p> \r\n";   // ----- Absatz 1 ----- 
    echo "<p> ".$descarr[1]." </p> \r\n";   // ----- Absatz 2 -----


    wie bekomme ich es hin,. das der Text nicht mitten in einem Wort getrennt wied?

  • in: Kategorien und Unterkategorien

    geschrieben von kataloge

    Hallo

    man kann sich "Nested Sets" auch einfacher machen
    wenn man vorher weiss, vielele Unter-Ebenen es geben soll

    einfach die "Bereiche" bzw. "knoten" vorher festlegen
    dann muss man nicht jedesmal die Knoten updaten
    wenn neue Elemente dazu kommen

    BSP: mit 3 Ebenen

    1. Ebene (Hauptkategorien) ... jeweils ganze 1000er Schritte
    2. Ebene (Unterkategorien jeweils ganze 100er Schritte
    3. Ebene (Unter-Unter-Kats) jeweils innerhalb der 100er


    oder man benutzt eine fertige Klasse / Funktion für Nestet Sets

    EDIT: sowas hier: phpclasses Celko

    kenne jetzt grad keine, aber vielleicht kann ja jemand eine empfehlen
    (oder machen) wo man einfach Kategorien einfügen kann

    Funktionsaufruf mit $inknoten = wo die Kategorie "rein" soll
    makeNewkat ($inknoten, $neuekat);

    z.B.
    makeNewkat ('Root', 'Hauptkategorie3'); // neue Haupt-Kategorie eintragen
    makeNewkat ('Hauptkategorie3', 'Unterkategorie7'); // neue Kategorie in Haupt-Kat3 eintragen
    makeNewkat ('Unterkategorie7', 'Unterunterkategorie2'); // neue Kategorie in Unterkategorie7 eintragen

    nur so als Idee :)
  • in: Seiten Blättern in MySQL Ergebnis

    geschrieben von kataloge

    Hallo, ne nette Idee ...

    aber Du hast da noch einen kleinen Fehler bei Ausgabe der Seiten-Nummern
    mit führenden NULLen ... alle ab 100 bekommen auch eine 0 vorne dran (= hier aber falsch)

    if (10 < $np AND $np < 100) { $npi = "0".$np; }
    elseif ($np < 10) { $npi = "00".$np; }
    else { $npi = "0".$np; }


    richtig wäre:
    if (10 < $np AND $np < 100) { $npi = "0".$np; }
    elseif ($np < 10) { $npi = "00".$np; }
    else { $npi = "".$np; }


    das gleiche bei
    else { $pmaxi = "0".$pmax; }


    auch da die 0 (NULL) raus nehmen


  • in: Bewertung ohne Browser-Reload speichern?

    geschrieben von kataloge

    hmm

    etwas abschreckend finde ich document.createElement('iframe');
    wer will schon iFrames ?!

    lieber wäre mir ein POST oder GET (zu einer PHP-Datei) um das Ergebnis zu speichern
    aber auch das bekomme ich nicht hin

    mal ohne die 10 Punkte, ganz einfaches Beispiel

    <div id="eintrag1">
       <p>Screenshot, Titel, Link und Beschreibung zum Eintrag 1 .... </p>
          <div class="vote" onClick="abstimmung();"> VOTE: 
          - <span class="plus">daf&uuml;r</span> -  <span class="infoplus"><?php echo $stimmen_plus; ?></span> 
          - <span class="minus">dagegen</span> -  <span class="infoplus"><?php echo $stimmen_minus; ?></span> 
          </div>
    </div>
    
    <div id="eintrag2">
       <p>Screenshot, Titel, Link und Beschreibung zum Eintrag 2 .... </p>
          <div class="vote" onClick="abstimmung();"> VOTE: 
          - <span class="plus">daf&uuml;r</span> -  <span class="infoplus"><?php echo $stimmen_plus; ?></span> 
          - <span class="minus">dagegen</span> -  <span class="infoplus"><?php echo $stimmen_minus; ?></span> 
          </div>
    </div>
    
    <div id="eintrag3">
       <p>Screenshot, Titel, Link und Beschreibung zum Eintrag 3 .... </p>
          <div class="vote" onClick="abstimmung();"> VOTE: 
          - <span class="plus">daf&uuml;r</span> -  <span class="infoplus"><?php echo $stimmen_plus; ?></span> 
          - <span class="minus">dagegen</span> -  <span class="infoplus"><?php echo $stimmen_minus; ?></span> 
          </div>
    </div>


    wie sieht dann JavaScript aus, um bei Klick auf ein "dafür" oder "dagegen" in einem Eintrag
    diese Werte an eine PHP-Datei (im Hintergrund) zu senden (egal ob POST oder GET)

    muss vielleicht das onClick jeweils in den <span> Tag rein ?
    und wie schreibe ich das Ergebnis dann in den entsprechenden Info-Span ? ... innerHTML ?
  • in: Bewertung ohne Browser-Reload speichern?

    geschrieben von kataloge

    Hallo

    Ich habe eine Liste mit Links zu Webseiten
    User sollen diese Links (Webseiten) bewerten können (1 bis 10 Punkte geben)

    das Speichern der Votes (und Re-Vote Sperre) ist nicht das Problem
    bzw. das mache ich serverseitig mit MySQL

    aber wie kann ich die Abgabe einer Bewertung speichern
    ohne dass die ganze Seite neu Laden muss ?

    ich habe gehört sowas soll mit jQuery funktionieren, aber wie ?

    ... Bei Klick auf Vote-Button (bzw. Vote-Link) diesen Vote speichern ohne Browser-Reload ?!?
    jemand einen Tipp wie ich das arn angehen soll ? ... hab noch keine Erfahrung mit jQuery

Login zum Webhosting ohne Werbung!