<?php /** * age_calculator() * * @param int $day DD * @param int $month MM * @param int $year YYYY * @return int $age years */ function age_calculator($day,$month,$year){ if(date("n") > $month){ $age = (date("Y") - $year); } elseif(date("n") == $month){ if(date("j") < $day){ $age = (date("Y") - $year) - 1; } else { $age = (date("Y") - $year); } } else { $age = (date("Y") - $year) - 1; } return $age; } ?>
Category: php
xD Der beste PHP bug ever
Das habe ich bisher auch noch nicht gesehen
http://bugs.php.net/bug.php?id=50287
Voll der Bug oder?
PHP crypt command line
crypt
#!/usr/bin/php < ?php require "crypt.php"; $type = $argv['1']; $string = $argv['2']; $key = $argv['3']; if($type !='' && $string != '' && $key != ''){ if($type=="e"){ echo encrypt($string,$key); echo "\n"; } elseif($type=="d") { echo decrypt($string,$key); echo "\n"; } else { die('WRONG TYPE'); } } else { echo 'crypt TYPE STRING KEY'; echo "\n\n"; echo "TYPE:\n"; echo "e encrypt\n"; echo "d decrypt\n"; echo "\n\n"; echo "STRING Your string\n"; echo "KEY Crypt key\n\n"; } ?>
crypt.php
< ?php /** * encrypt() * * @param mixed $string * @param mixed $key * @return mixed $retrun */ function encrypt($string, $key){ $result = ''; $lentgh = strlen($string); for($i = 0; $i < $lentgh; $i++) { $char = substr($string, $i, 1); $keychar = substr($key, ($i % strlen($key))-1, 1); $char = chr(ord($char) + ord($keychar)); $result .= $char; } return base64_encode($result); } /** * decrypt() * * @param mixed $string * @param mixed $key * @return mixed $return */ function decrypt($string, $key){ $result = ''; $string = base64_decode($string); $lentgh = strlen($string); for($i = 0; $i < $lentgh; $i++) { $char = substr($string, $i, 1); $keychar = substr($key, ($i % strlen($key))-1, 1); $char = chr(ord($char) - ord($keychar)); $result .= $char; } return $result; } ?>
Login Session PHP
< ?php class login{ private $user = ''; private $pass = ''; /** * login::__construct() * @access public */ public function __construct(){ session_name('login'); session_start(); } /** * login::set_user() * @access public * @param string $user * @return */ public function set_user($user){ $this->user = $user; } /** * login::set_pass() * @access public * @param string $pass * @return */ public function set_pass($pass){ $this->pass = $pass; } /** * @access public * @return bool * @return redirect */ public function is_logged_in(){ if(isset($_SESSION['is_logged_in']) && $_SESSION['is_logged_in']== true){ return true; } return false; } /** * Löscht Cookie und Session * @access public */ public function do_logout(){ // Cookie clientseitig löschen if (isset ($_COOKIE[session_name ()])) { setcookie (session_name (), '', time ()-42000, '/'); } // Cookie serverseitig löschen session_destroy (); $_COOKIE = null; $_SESSION = null; } /** * Login function * @access public * @param string $user Bentuzername * @param string $password Passwort * @return bool */ public function do_login($user,$password){ if($user === $this->user && $password === $this->pass){ $_SESSION['is_logged_in'] = true; return true; } $_SESSION['is_logged_in'] = false; return false; } } ?>
< ?php require_once "../classes/login.class.php"; $login = new login(); $login->set_user('admin'); $login->set_pass('admin'); if(isset($_GET['logout']) && $_GET['logout']==1){ $login->do_logout(); } if(isset($_POST['user'])){ $login->do_login($_POST['user'],$_POST['pass']); } if($login->is_logged_in()== false){ echo 'logged out'; ?> < form action="" method="post" > User: < input type="text" name="user" value="" / >< br / > Pass: < input type="password" name="pass" value="" / >< br / > < input type="submit" value="login" / >
< /form > < ?php } else { echo 'logged in'; ?> < br / >< br / >< a href="?logout=1">Logout< /a > < ?php } ?> < br />< br />< a href="">Reload page< /a >
Dateiendung ermitteln
< ?php /** * Endung der Datei herausfinden * @param $file Dateiname * @return mixed var */ function getExtension ($file){ $_file=trim("$file"); $getpos=strrpos($_file,"."); if(!$getpos){ return ""; } $calc = strlen($_file)-$getpos; return substr($_file, $getpos+1, $calc); } ?>
PHP cache class
< ?php /** * * @var $cache_file_name string file name * @var $age int age in seconds */ class cache { public $cache_file_name; public $age; /** * cache::__construct() * @access public */ public function __construct(){ $this->cache_start(); register_shutdown_function(array($this, "cache_end"), "inside"); } /** * cache::__descruct() * @access public * @return */ public function __descruct(){ $this->cache_end(); } /** * cache::cache_start() * @access public * @return */ public function cache_start(){ global $cache_file_name, $age; $cache_file_name = $_SERVER["DOCUMENT_ROOT"].$_SERVER['REQUEST_URI'] . '_cache'; if (empty($age)){ $age = 600; } if(file_exists($cache_file_name)){ if (filemtime($cache_file_name) + $age > time()) { readfile($cache_file_name); unset($cache_file_name); exit; } } ob_start(); } /** * cache::cache_end() * @access public * @return */ public function cache_end() { global $cache_file_name; if (empty($cache_file_name)){ return; } $str = ob_get_clean(); echo $str; fwrite(fopen($cache_file_name . '_tmp', "w"), $str); rename($cache_file_name . '_tmp',$cache_file_name); } } ?>
Doppelte Werte in einem array löschen
function remove_dup($matriz) { $aux_ini=array(); $entrega=array(); for($n=0;$n<count($matriz);$n++) { $aux_ini[]=serialize($matriz[$n]); } $mat=array_unique($aux_ini); for($n=0;$n<count($matriz);$n++) { $entrega[]=unserialize($mat[$n]); } foreach ($entrega as $key => $row){ if (!is_array($row)) { unset($entrega[$key]); } } return $entrega; }
Archive for category php
Archives by Month:
- October 2024
- August 2024
- April 2024
- January 2024
- December 2023
- November 2023
- July 2023
- May 2023
- April 2023
- March 2023
- February 2023
- January 2023
- December 2022
- October 2022
- September 2022
- August 2022
- July 2022
- May 2022
- March 2022
- February 2022
- November 2021
- October 2021
- September 2021
- August 2021
- July 2021
- June 2021
- May 2021
- February 2021
- January 2021
- August 2020
- July 2020
- June 2020
- April 2020
- January 2020
- December 2019
- November 2019
- October 2019
- May 2019
- April 2019
- March 2019
- January 2019
- October 2018
- August 2018
- June 2018
- April 2018
- March 2018
- February 2018
- November 2017
- June 2017
- April 2017
- February 2017
- January 2017
- November 2016
- September 2016
- May 2016
- February 2016
- September 2015
- August 2015
- July 2015
- May 2015
- April 2015
- March 2015
- February 2015
- January 2015
- December 2014
- November 2014
- July 2014
- June 2014
- April 2014
- January 2014
- December 2013
- August 2013
- July 2013
- June 2013
- May 2013
- April 2013
- February 2013
- January 2013
- December 2012
- November 2012
- October 2012
- August 2012
- July 2012
- June 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009