timestamp, HEX, to file-name and reverse, geht doch eleganter?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • timestamp, HEX, to file-name and reverse, geht doch eleganter?

    // 10 digit max 2000000000 timestamp to basis 64 string iK34Xj.jpg ( 0-9 A-Z a-z [10+26+26 , are 62 pices , plus 2 =: ] _ § [are 64 pices] )

    um webcam-bilder und den timestamp in einem kurzen (12X4G6.jpeg) dateinamen zu speichern , habe ich mal ein test script mit input-formular geschrieben

    input: timestamp oder zahl im decimal system
    output: zahlensystem zwischen 2 .. 64 (0-9 A-Z a-z ~ #)

    es funktioniert , ist doch aber sicher schon oft VIEL ELEGANTER veroeffentlicht

    FRAGE: wonach sollte ich wo suchen , um ein ordentliches program fuer diesen zweck zu finden , timestamp AND filename zB brachte nix

    PHP-Code:

    <html>
    <head>
    <title>tim2cod</title>
    </head>
    <body>
    <?php 
    // qq66yy tim2cod  jpegname 0-9 A-Z a-z _ § [are 62 pices]
    // test   [url]http://nb/book_ph5_MyS4/Kapitel4/formulare/kontaktform0007.php[/url]
    // echo " . . tim2cod: $tim2cod . . vor form" ; 


    // default
    //$dnum=64; // possible 2..64
    //$lenn=6;  // default 8 
    //$digit63 = "§" ;
    //$digit62 = "_" ;
    //$testecho = 0 ; // default = 0 ; try  5 .. 10


    $timstamlong date("Ymd_His");
    $timstam time() ;  //   / 1000 ; // ; // 
    echo $timstam ;

    if (!
    $issend && !$tim2cod// aus formular variable name="tim2cod" 
    {
              
    // method="POST"
    ?>
        <form method="GET" action="<?php echo $PHP_SELF ?>">
          timstamp(max 2000000000): <input type="text" name="tim2cod" value="188288" size="22"><br/>
          dnum(def 62) 2..64: <input type="text" name="dnum" value="62"size="16"><br/>
          digits len(def 6): <input type="text" name="lenn" value="6" size="8"><br/>
          digit62: <input type="text" name="digit62" value="_" size="8"><br/>
          digit63: <input type="text" name="digit63" value="~" size="8"><br/> 
          addfirstchars: <input type="text" name="addfirstchar" value="" size="8">.JPEGNAME.jpg (if you wanna add same leading chars)<br/> 
          testecho(def 0): <input type="text" name="testecho" value="0" size="8"> try 3 . . 9  <br/>

            <input type="submit" name="submit" value="GO">
            <input type="hidden" name="issend" value="1">
          </p>
        </form>
    <?php
    }




     
    // echo "<br /> ^ 94, ° 176, @ 64, ! 33, § 167, $ 36, + 43, - 45, ~ 126, # 35, _ 95, € 128, | 124, ß 223 <br>" ;
     // ___|0:48|9:57=48+|A:65|Z:90_ 11..35=55+|a:97|z:122_ 36..$dnum=61+|___ 
    //$digit63 = "§" ;
    //$digit62 = "_" ;

    function timstam2cod($t4$dnum$lenn$digit62$digit63 $addfirstchar ="" )

      
    // need $digit62 = '_' ; $digit63 = '§' ;
      // $t4=$timsta2;
      // echo "<br /> ^ 94, ° 176, @ 64, ! 33, § 167, $ 36, + 43, - 45, ~ 126, # 35, _ 95, € 128, | 124, ß 223 <br>" ;
        
    if ( 2000000000 $t4 ){ // 10 digits need 
            
    echo " . . . error in func timstam2cod () NUMBER TO BIG $t4 . . . " ;
        }
      
      while ( 
    $lenn-- > )   
      { 
    $t1=$t4// last ganzzahl
        
    $t2=$t1 $dnum;  // rest , letzte DIGIT
        
    $t3=$t1 $t2// t3 teilt dann ganzzahlig
        
    $t4$t3 $dnum// t4 is ganzzahl
        // echo " . . t2=$t2 . . " ;
        
    if     ($t2 == 63){$t5$digit63 ;}    // for last two 64 and 63 no more letters echo "t2=$t2 t5=$t5 digit63:$digit63" ; 
        
    else if($t2 == 62){$t5$digit62 ;}    // so chose ^°@!§$+~#_€|ß+-
        
    else if($t2 >  35){$t5=chr($t2 61  );} // 97='a' 97-36=61 (36..61)to(a..z)
        
    else if($t2 >   9){$t5=chr($t2 55  );} // 65='A' 65-10=55 (10..35)to(A..Z)
        
    else              {$t5=chr($t2 48  );} // 48='0' 48-0=48 (0..9)to(0..9)

        
    $jpnam=$t5.$jpnam// // ___|0:48|9:57=48+|A:65|Z:90_ 11..35=55+|a:97|z:122_ 36..$dnum=61+|___ 
        
    if($testecho 4)echo "<br/>$jpnam timstam2cod";
      }

      if (
    $addfirstchar$jpnam $addfirstchar.$jpnam  ;
      if(
    $testecho 4)echo " [ ret $jpnam ] ";
      return 
    $jpnam ;
    // end function timstam2cod($timstam)



        
    if($testecho 8){  echo "<br /> ^ 94, ° 176, @ 64, ! 33, § 167, $ 36, + 43, - 45, ~ 126, # 35, _ 95, € 128, | 124, ß 223 <br />" ;
                echo 
    "<br /> ^" ord('^') ;
                echo 
    "<br />° " ord('°') ;
                echo 
    "<br />@ " ord('@') ;
                echo 
    "<br /> !" ord('!') ;
                echo 
    "<br /> §" ord('§') ;
                echo 
    "<br /> $" ord('$') ;
                echo 
    "<br /> +" ord('+') ;
                echo 
    "<br /> -" ord('-') ;
                echo 
    "<br /> ~" ord('~') ;
                echo 
    "<br /> #" ord('#') ;
                echo 
    "<br /> _" ord('_') ;
                echo 
    "<br /> €" ord('€') ;
                echo 
    "<br /> |" ord('|') ;
                echo 
    "<br /> ß" ord('ß') ;
                echo 
    "<br /> " ord('') ;
                echo 
    "<br /> "  ;
         }
         if(
    $testecho 6){
                echo 
    " timstamlong is $timstamlong ";
                echo 
    " timstam is $timstam <br/>";
        }


    $jpnam timstam2cod($tim2cod$dnum$lenn $digit62$digit63 $addfirstchar );  //   $lenn = strlen( st4 ) ; $lenn nu.


    $ss=0// reverse time to code

    ///////////////////////////////////////////////////////////////200
    // only for test the function timstam2cod() say if(1){ . . } to see , if it get code to timestamp back , and work right
    // need $dnum 0..64 default=62 // $lenn how much digits // $digit62 $digit63 the two spechial chars ,are in:  ^°@!§$+~#_€|ß+-
    function cod2timstam$jpnam $dnum $addfirstchar ="" // ( $jpnam , $dnum , $lenn =0 // default = 8) default = 8

      
    $jpnalll " " .$jpnam"" // maybe convert to a string
      
    $lllen strlen$jpnalll ) - // for the added leading " " SPACE
      
       
    if ( $addfirstchar ''){
          
    $addfirslll " " $addfirstchar"" // maybe convert to a string
          
    $addfirstclllen strlen$addfirslll ) -;  // for the added leading " " SPACE
          
          
    $jpnam substr$jpnam$addfirstclllen ) ; // remove leading $ addfirstchar
       
    }
       
       
    $ss// reverse time to code
       
    $lllen strlen(" " .$jpnam"") -// is already without $ addfirstchar
       
    $l $lllen ;
      while(
    $l--  > 0)   
      { 
        
    // in while schon -1 nit wie c++ ka
        
    $letr=substr($jpnam$lllen $l1); // in while schon -1 nit wie c++ ka // $letr=substr($jpnam,7-$l,1); // in while schon -1 nit wie c++ ka
        
    $ziford($letr); // den buchstaben zahlen ascii zu 0 bis 63 reduzieren

        
    if     ($zif == ord($digit63) ){ $zif 63 ;} // 63 for last two 62 and 63 no more letters
        
    else if($zif == ord($digit62) ){ $zif 62 ;} // 62 so chose ^°@!§$+~#_€|ß+-
        
    else if($zif >              96){ $zif $zif -  61 ;} // 97='a' 122='z' 97-36=61 (36..61)to(a..z)
        
    else if($zif >              64){ $zif $zif -  55 ;} // 65='A'  90='Z' 65-10=55 (10..35)to(A..Z)
        
    else                           { $zif $zif -  48 ;} // 48='0'  57='9' 48-0=48 (0..9)to(0..9)
        
            //~ if      (($zif >    47) && ($zif <    58)) { $zif = $zif -  48 ;} // 48='0'  57='9' 48-0=48 (0..9)to(0..9)
            //~ else if (($zif >    64) && ($zif <    91)) { $zif = $zif -  55 ;} // 65='A'  90='Z' 65-10=55 (10..35)to(A..Z)
            //~ else if (($zif >    96) && ($zif <   123)) { $zif = $zif -  61 ;} // 97='a' 122='z' 97-36=61 (36..61)to(a..z)
            //~ else if ($zif == ord($digit62) )           { $zif = 62 ;} // 62 for last two 62 and 63 no more letters
            //~ else                                       { $zif = 63 ;} // 63 so chose ^°@!§$+~#_€|ß+- default '_' and '#'

        
    $ss$ss $dnum $zif   // so is potenz automatisch beim next aufruf
        // 
        
    if($testecho 6)echo "<br />$l: letr: $letr , zif: $zif , restore: $ss ";
      } 
      
    //
      
    if($testecho 4)echo " [ ret. $ss ] " ;
      if(
    $testecho 7)echo " . . jpnalll: $jpnalll . . len: $lllen  . .<br>" ;
      return 
    $ss ;
    }
    // function cod2timstam( $jpnam , $dnum , $lenn )
    //////////////////////////////////////////////////////////////////////200


    $timrevbac cod2timstam$jpnam $dnum ,$addfirstchar ) ;


    $sucsesss ' NOT GOOD ERROR ' ;
    if( 
    $tim2cod == $timrevbac )  $sucsesss 'OK! :-)' ;
    echo 
    "<br/><br/>
     <b>JpgNam: </b> 
    $jpnam<br>
     <b> timstam2cod(): </b> 
    $tim2cod <br />
     <b> cod2timstam( ): </b> 
    $timrevbac    <b> REVERSE $sucsesss </b> <br /> 
     <b>dnum(def 62): </b> 
    $dnum<br>
     <b>lenn(def 6): </b> 
    $lenn<br>
     addfirstchars .>
    $addfirstchar<.
     <form method=POST action=
    $PHP_SELF>
     <input type='submit' name='submit' value='NEW TEST?'>
     </form>
    "
    ;
    ?>
    </body>
    </html>
    Zuletzt geändert von andijota; 19.09.2007, 13:53.
Lädt...
X