PHP 打印错误以在Drupal中的默认php5上进行筛选

<?php
ini_set('error_reporting',          E_ALL);
ini_set('display_errors',           'stdout');
?>

PHP 页面模板

<?php
/*
Template Name: Resume
*/
?>
<?php get_header(); ?>

<div class="content">
	<div id="primary">
		<div id="notices"></div>
		<a name="startcontent" id="startcontent"></a>

		<div id="current-content" class="hfeed">

		<?php while (have_posts()): the_post(); ?>
			<div id="post-<?php the_ID(); ?>" class="<?php k2_post_class(); ?>">

				<div class="page-head">
					<h2><a href="<?php the_permalink() ?>" rel="bookmark" title='<?php printf( __('Permanent Link to "%s"','k2_domain'), wp_specialchars(strip_tags(the_title('', '', false)),1) ); ?>'><?php the_title(); ?></a></h2>
					<?php edit_post_link(__('Edit','k2_domain'), '<span class="entry-edit">','</span>'); ?>
				</div>
	
				<div class="entry-content">
					<?php the_content(); ?>

					<?php link_pages('<p><strong>'.__('Pages:','k2_domain').'</strong> ', '</p>', 'number'); ?>
				</div>

			</div> <!-- #post-ID -->
		<?php endwhile; ?>

		</div> <!-- #current-content -->

		<div id="dynamic-content"></div>
	</div> <!-- #primary -->

</div> <!-- .content -->
	
<?php get_footer(); ?>

PHP 欧元钞票验证

<?php

/**
 * Checks if the input string is a valid Euro note serial number.
 *
 * @param string $string
 * @return bool
 */
function Euro($string)
{
	settype($string, 'string');

	if (strlen($string) != 12)
	{
		return false;
	}

	$string = str_replace(array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'), array(2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9), strtoupper($string));

	$stack = 0;

	for ($i = 0; $i < 12; $i++)
	{
		$stack += $string[$i];
	}

	if ($stack % 9 == 0)
	{
		return true;
	}

	return false;
}

?>

PHP 打印出共享服务器的真实路径

<?php
  print($_SERVER['DOCUMENT_ROOT']);
?>

PHP Acortar cadena por palabras

<?php

function cortarTexto($str,$num)
{
  // Comprueba que la cadena es más larga que el número introducido. 
  // Si es más corta, se deja tal cual.
  if (strlen($str) < $num) {
    return $str;
  } else {
    $str = substr($str,0,$num);
    return substr($str,0, -(strlen($str)-strrpos($str,' ')) ).'...';
  }  
}

?>

PHP Humaniser l'affichagededuréesécoulées

/**Function when($ts) takes timestamp on input and returns
  * human readable time difference. Example output:
  * I am running my script in 20 minute intervals to clear the
  * database and remove overhead.
**/

function kiedy($ts) {
   $ts=time()-$ts;
   if ($ts<60)
       // <1 minute
       return $ts; //." seconds ago";
     elseif ($ts<60*60)
       // <1 hour
       return floor($ts/60); //." minutes ago";
   elseif ($ts<60*60*2)
       // <2 hour
       return "60"; //"1 hour ago";
     elseif ($ts<60*60*24)
       // <24 hours = 1 day
       return floor($ts/60*60); //." hours ago";
     elseif ($ts<60*60*24*2)
       // <2 days
       return "1 day ago";
     elseif ($ts<60*60*24*7)
       // <7 days = 1 week
         return floor($ts/60*60*24); //." days ago";
   elseif ($ts<60*60*24*30.5)
       // <30.5 days ~  1 month
       return floor($ts/60*60*24*7); //." weeks ago";
     elseif ($ts<60*60*24*365)
       // <365 days = 1 year
       return floor($ts/60*60*24*30.5); //." months ago";
   else
       // more than 1 year
       return floor($ts/60*60*24*365); //." years ago";
};

$link = mysql_connect("localhost", "database", "pwd");
mysql_select_db("database");
$res = mysql_query("SELECT timestamp from chattable ORDER by timestamp DESC");
while ($line = mysql_fetch_array($res, MYSQL_ASSOC)) {
    $ts = $line['timestamp'];
    $result=kiedy($ts);
    if ($result > 20 ) {  // ADJUST THIS TO CLEAR X MINUTES
        $SQL = "DELETE from chattable WHERE timestamp = '$ts'";
        $resultD = mysql_query($SQL);
    }
}

$SQL = 'OPTIMIZE TABLE chattable';
$resultO = mysql_query($SQL);

PHP 函数打包到SpeedUp Web表单创建过程。 V.0.2Beta

<?php
   class forms implements iforms{
   	
   		var $_inited=false;
		var $_form=array();
   		var $_elems=array();
					/**_elems: array(
						array('id'=>'','name'=>'login','value'=>'','validate'=>true,'params'=>'','on'=>array('click'=>'event'))
					);**/
					/**
					_fields: array('id'=>'','label'=>"Enter your login:","value"=>"el:21551","type"=>"pair","style"=>"");
					**/
		var $_fields=array();
		var $_patterns=array();
		var $_css=array();
		var $_js=array();
		var $_data='';
	
	
		/**
		 * Constructor. Make new instance of the form container.
		 * @return 
		 * @param $method Object
		 * @param $action Object
		 * @param $encoding Object
		 * @param $params Object[optional]
		 */
		
		public function init($method,$action,$encoding='',$name='',$id='',$params=array())
		{
				$id=($id)?'f_'.md5($time.$name.$action).'_'.mt_rand(10,99):'';
				if($this->correctMethod($method) && !$this->_inited){
					$this->_data='';
					$this->_form['method']=$method;
					$this->_form['action']=$action;
					$this->_form['encoding']=$encoding;
					$this->_form['params']=$params;
					$this->_form['id']=$id;
					$this->_form['name']=$name;
					$this->initOthers();
					$this->initPatterns();
					$this->_inited=true;
				}else{
					return IFORM_WRONG_METHOD;	
				}
		}
		
		protected function initOthers(){
			//CSS
			$this->css['pairFieldLabelClass']='label';
			$this->css['singleFieldLabelClass']='label label1 center';
			$this->css['sinleFieldLabelStyle']='width:100%;clear:both;';
			$this->css['formLegendClass']='legend';
			$this->css['pairFieldValueClass']='value value1';
			$this->css['pairFieldLabelClass']='label';
			$this->css['rowClass']='row';
			$this->css['formMainClass']='form';
			$this->css['submit']='submit center';
			
			//JS
			$this->js['validateFunct']='Invis.tools.checkValue(this.id);';
		}
		
		public function addLegend($text){
			$this->_form['legend']=sprintf($this->_patterns['formLegend'],$text);
		}
		protected function correctMethod($method)
		{
			switch($method){
				case 'GET':
				case 'POST':
				case 'PUT':
				return true;
			}
			return false;
		}
		
		/**
		 * Append eventHandler to added to form input element
		 * @return integer
		 * @param $name String 
		 * @param $event String
		 * @param $handler String
		 */
		public function addEventHandler($name,$event,$handler){
			if(trim($name)!='' && trim($event)!='' && trim($handler)!=''){
				for($i=0;$i<count($this->_elems);$i++){
					if($this->_elems['name']==$name){
						$this->_elems[$i]['on'][]=array($event=>$handler);
						break;
					}
				}
			}else{
				return IFORM_WRONG_PARAMS;
			}
			return 1;
		}
		
		/**
		 * Add submit control to the form
		 * @return void
		 * @param $name Object
		 * @param $value Object
		 * @param $style Object[optional]
		 */
		public function addSubmit($name,$value,$params=array())
		{
			if(trim($name)!=''){
				$this->_submit=sprintf($this->_patterns['submit'],$name,$value,$this->_prepareParams($params));
			}else{
				return IFROM_WRONG_PARAMS;
			}
		}
		
		/**
		 * Check that element with value of type $type equals $value
		 * @return integer
		 * @param $type String
		 * @param $value String
		 */
		protected function elemExists($type,$value)
		{
			for($i=0;$i<count($this->_elems);$i++){
				switch($type)
				{
					case 'name':
						if($this->_elems[$i]['name']==$value)return 1;
					break;
					case 'id':
						if($this->_elems[$i]['id']==$value)return 1;
					break;		
				}
			}
			return 0;
		}
		
		/**
		 * Set "important" parameter to the $id - input element
		 * @return integer
		 * @param $name String
		 */
		public function validateElement($id)
		{
			if(trim($name)==''){
				return IFORM_WRONG_PARAMS;
			}else{
				if(!$this->elemExists("id",$id)){
					return IFORM_WRONG_ELEM;
				}else{
					//FIX ERROR
					$this->_elems[array_search($name,$this->_elems)]['validate']=true;
				}
			}
			return 1;
		}
		
		/**
		 * Add input element to the current form
		 * @return String 
		 * @param $type String
		 * @param $name String
		 * @param $parent String
		 * @param $id String[optional]
		 * @param $value String[optional]
		 * @param $validate Boolean[optional]
		 * @param $params String[optional]
		 */
		public function addInput($type,$name,$parent,$id='',$value='',$validate=false,$params='')
		{
			if(trim($type)!='' && trim($name)!='' && trim($parent)!=''){
				$id=(!$id)?'i'.md5($name).'_'.count($this->_elems):$id;
				$this->_elems[]=array(
									'id'=>$id,
									'type'=>$type,
									'parent'=>$parent,
									'name'=>$name,
									'value'=>$value,
									'validate'=>$validate,
									'on'=>array(),
									'params'=>$params									
									);
			}else{
				return IFROM_WRONG_PARAMS;
			}
			return $id;
		}
		
		/**
		 * Add field to the form
		 * @return String 
		 * @param $label String
		 * @param $type String[optional]
		 * @param $el String[optional]
		 * @param $id String[optional]
		 * @param $params String[optional]
		 */
		public function addField($label,$type="pair",$value="",$id='',$params="")
		{
			$id=(!$id)?'f'.md5($label).'_'.count($this->_fields):$id;
			$this->_fields[]=array("id"=>$id,"label"=>$label,"type"=>$type,"value"=>$value,"type"=>$type,"style"=>$params);
			return $id;
		}
		
		
		/**
		 * Initialize system patterns
		 * @return void 
		 */
		protected function initPatterns()
		{
			$this->_patterns['form']='<form action="%s" method="%s" encoding="%s" %s>';
			$this->_patterns['inputI']='<input type="%s" name="%s" id="%s" %s %s %s/>';
			$this->_patterns['inputD']='<%s name="%s" id="%s" %s %s %s>%s</%s>';
			$this->_patterns['fieldsingle']='<div class="%s" style="width:100%;clear:both;" id="%s" %s%s</div>';
			$this->_patterns['fieldpair']='<div class="%s" %s id="%s"><span class="%s" style="%s">%s</span><span style="%s">%s</span></div>';
			$this->_patterns['formLegend']='<div class="'.$this->css['formLegendClass'].'">%s</div>';
			$this->_patterns['mainContainer']='<div class="'.$this->css['formMainClass'].'">';
			$this->_patterns['endContainer']='</div></form>';
			$this->_patterns['submit']='<div class="row"><span class=" '.$this->css['submitClass'].'" style="clear:both;"><input type="submit" name="%s" value="%s" %s/></span></div>';
		}
		
		
		/**
		 * Get inputs which referers to $parent-field
		 * @return String
		 * @param $parent Object
		 */
		protected function _getChildsInputs($parent)
		{
			$res='';
			for($i=0;$i<count($this->_elems);$i++)
			{
				if($this->_elems[$i]['parent']==$parent){
					switch($this->_elems[$i]['type']){
						case 'password':
						case 'checkbox':
						case 'text':
							$res.=sprintf(
								$this->_patterns['inputI'],
								$this->_elems[$i]['type'],
								$this->_elems[$i]['name'],
								$this->_elems[$i]['id'],
								($this->_elems[$i]['validate'])?'onclick="'.$this->js['validateFunct'].'"':'',
								$this->_getEvents($i),
								$this->_prepareParams($this->_elems[$i]['params'])
								);		
								break;		
						case 'select':
							$res.=sprintf(
								$this->_patterns['inputI'],
								$this->_elems[$i]['type'],
								$this->_elems[$i]['name'],
								$this->_elems[$i]['id'],
								($this->_elems[$i]['validate'])?'onclick="'.$this->js['validateFunct'].'"':'',
								$this->_getEvents($i),
								$this->_prepareParams($this->_elems[$i]['params'])
								);
								break;
						default:
							$res=IFORM_WRONG_TYPE;
					}
				}
			}
			return $res;
		}
		
		
		/**
		 * 
		 * @return String
		 * @param $elId Integer
		 */
		protected function _getEvents($elId){
			$result=null;
			if(array_search($elId,$this->_elems)!=-1){
				foreach($this->_elems[$elId]['on'] as $k=>$v)
				{
					$result.=' on'.$k.'="return '.$v.'();" ';
				}
			}else{
				$result=IFORM_NOT_EXISTS;
			}
			return $result;
		}
		
		private function _prepareParams($data)
		{
			$res=null;
			if(is_array($data)){
				foreach($data as $k=>$v)
				{
					$res.=$k."=\"".$data."\"";
				}	
			}
			return $res;
		}
		
		/**
		 * 
		 * @return String
		 */
		public function render($output=true)
		{//<form action="%s" method="%s" encoding="%s" style="%s" %s>
		#print_rbr($this->_elems);
		#die_br($this->_fields);
			$this->_data=sprintf($this->_patterns['form'],$this->_form['action'],$this->_form['method'],$this->_form['encoding'],$this->_prepareParams($this->_form['params']));
			$this->_data.=sprintf($this->_patterns['mainContainer']);
			$this->_data.=($this->_form['legend'])?$this->_form['legend']:'';
			#die($this->_data);
			$this->_data.='<input type="hidden" name="genericDATA" id="fX'.md5(time()).'" value="'.time().'"/>';
			for($i=0;$i<count($this->_fields);$i++)
			{#die_r($this->_fields[$i]);
				switch($this->_fields[$i]['type'])
				{
					
					case 'pair':
					//<div class="%s" id="%s"><span class="%s" style="%s">%s</span><span style="%s">%s(value)</span></div>'
						$this->_data.=sprintf(
											$this->_patterns['fieldpair'],
											$this->css['rowClass'],
											$this->_fields[$i]['params'],
											$this->_fields[$i]['id'],
											$this->css['pairFieldLabelClass'],
											$this->css['pairFieldLabelStyle'],
											$this->_fields[$i]['label'],
											$this->css['pairFieldValueClass'],
											($this->_fields[$i]['value']=='')?$this->_getChildsInputs($this->_fields[$i]['id']):$this->_fields[$i]['value']
											);
						
						break;
					case 'single':
						break;
				}
			}
			$this->_data.=$this->_submit;
			$this->_data.=sprintf($this->_patterns['endContainer']);
			return ($output)?$this->_data:'';
		}
		
		function getData()
		{
			return $this->_data;	
		}
		
   }
?>

PHP 替代Print_r()

function dump($var){
	 echo '<pre>'.highlight_string("<?php\n".print_r( $var, true)."\n?>", true).'</pre><br />';
}
	
//example
$myvar = array('1','2');
dump($myvar);

PHP 正确偏差转换数字(俄语)

/**
 * Выбор нужного падежа числа
 *
 * Пригодится для локализации любых скриптов. Лучше подключать через
 * <code>
 * if ( ! function_exists ( "NumToRu" ) )
 * {
 * 
 * }
 * </code>
 * @param int $number Число, требующее падежа
 * @param str $one Форма для mod 10 == 1 и != 11
 * @param str $little Форма для mod 10 == 2, 3, 4 и != 12, 13, 14
 * @param str $many Форма для остальных случаев
 * @return string Нужная форма падежа
 */
function NumToRu ( $number, $one, $little, $many )
{
	if ( $number % 100 > 10 &&  $number % 100 < 15 )
	{
		return $many;
	}
	if ( $number % 10 == 1 )
	{
		return $one;
	}
	if ( $number % 10 > 1 && $number %10 < 5 )
	{
		return $little;
	}
	return $many;
}

PHP 环境变量

$_SERVER["SCRIPT_FILENAME"] // server path to file
$_SERVER["SCRIPT_NAME"] // path to file from web root
$_SERVER["REMOTE_ADDR"] // user's IP address
$_SERVER["QUERY_STRING"] // query string in URL
$_SERVER["DOCUMENT_ROOT"] // server path to web root
$_SERVER["HTTP_HOST"]; // server host name (domain)