无需言 做自己 业 ,精于勤 荒于嬉.

错误处理 函数 debug_backtrace 产生一条回溯跟踪(backtrace)

发表日期:2021-07-01 08:54:56 | 来源: | 分类:错误处理 函数

      示例1
<?php 
// filename: /tmp/a.phpfunction a_test($str){
    echo "\nHi: $str";
    var_dump(debug_backtrace());
}
a_test('friend');
?><?php// filename: /tmp/b.phpinclude_once '/tmp/a.php';
?>

阅读全文 »

错误处理 函数 restore_exception_handler 恢复之前定义过的异常处理函数。

发表日期:2021-07-01 08:54:56 | 来源: | 分类:错误处理 函数

      示例1
<?php 
    function exception_handler_1(Exception $e)    {
        echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
    }
    function exception_handler_2(Exception $e)    {
        echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
    }
    set_exception_handler('exception_handler_1');
    set_exception_handler('exception_handler_2');
    restore_exception_handler();
    throw new Exception('This triggers the first exception handler...');
?>

阅读全文 »

错误处理 函数 trigger_error 产生一个用户级别的 error/warning/notice 信息

发表日期:2021-07-01 08:54:56 | 来源: | 分类:错误处理 函数

      示例1
<?php 
if ($divisor == 0) {
    trigger_error("Cannot divide by zero", E_USER_ERROR);
}
?>

阅读全文 »

错误处理 函数 user_error trigger_error() 的别名

发表日期:2021-07-01 08:54:56 | 来源: | 分类:错误处理 函数

user_error

(PHP 4, PHP 5, PHP 7, PHP 8)

user_errortrigger_error() 的别名

说明

此函数是该函数的别名: trigger_error().

阅读全文 »

错误处理 函数 set_exception_handler 设置用户自定义的异常处理函数

发表日期:2021-07-01 08:54:56 | 来源: | 分类:错误处理 函数

      示例1
<?php 
function exception_handler($exception) {
  echo "Uncaught exception: " , $exception->getMessage(), "\n";
}
set_exception_handler('exception_handler');
throw new Exception('Uncaught Exception');
echo "Not Executed\n";
?>

阅读全文 »

错误处理 函数 set_error_handler 设置用户自定义的错误处理函数

发表日期:2021-07-01 08:54:56 | 来源: | 分类:错误处理 函数

      示例1
<?php 
// error handler functionfunction myErrorHandler($errno, $errstr, $errfile, $errline){
    if (!(error_reporting() & $errno)) {
        // This error code is not included in error_reporting, so let it fall        // through to the standard PHP error handler        return false;
    }
    // $errstr may need to be escaped:    $errstr = htmlspecialchars($errstr);
    switch ($errno) {
    case E_USER_ERROR:        echo "<b>My ERROR</b> [$errno] $errstr<br />\n";
        echo "  Fatal error on line $errline in file $errfile";
        echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
        echo "Aborting...<br />\n";
        exit(1);
    case E_USER_WARNING:        echo "<b>My WARNING</b> [$errno] $errstr<br />\n";
        break;
    case E_USER_NOTICE:        echo "<b>My NOTICE</b> [$errno] $errstr<br />\n";
        break;
    default:        echo "Unknown error type: [$errno] $errstr<br />\n";
        break;
    }
    /* Don't execute PHP internal error handler */
    return true;
}
// function to test the error handlingfunction scale_by_log($vect, $scale){
    if (!is_numeric($scale) || $scale <= 0) {
        trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale", E_USER_ERROR);
    }
    if (!is_array($vect)) {
        trigger_error("Incorrect input vector, array of values expected", E_USER_WARNING);
        return null;
    }
    $temp = array();
    foreach($vect as $pos => $value) {
        if (!is_numeric($value)) {
            trigger_error("Value at position $pos is not a number, using 0 (zero)", E_USER_NOTICE);
            $value = 0;
        }
        $temp[$pos] = log($scale) * $value;
    }
    return $temp;
}
// set to the user defined error handler$old_error_handler = set_error_handler("myErrorHandler");
// trigger some errors, first define a mixed array with a non-numeric itemecho "vector a\n";
$a = array(2, 3, "foo", 5.5, 43.3, 21.11);
print_r($a);
// now generate second arrayecho "----\nvector b - a notice (b = log(PI) * a)\n";
/* Value at position $pos is not a number, using 0 (zero) */
$b = scale_by_log($a, M_PI);
print_r($b);
// this is trouble, we pass a string instead of an arrayecho "----\nvector c - a warning\n";
/* Incorrect input vector, array of values expected */
$c = scale_by_log("not array", 2.3);
var_dump($c);
 // NULL// this is a critical error, log of zero or negative number is undefinedecho "----\nvector d - fatal error\n";
/* log(x) for x <= 0 is undefined, you used: scale = $scale" */
$d = scale_by_log($a, -2.5);
var_dump($d);
 // Never reached?>

阅读全文 »

错误处理 函数 debug_print_backtrace 打印一条回溯。

发表日期:2021-07-01 08:54:55 | 来源: | 分类:错误处理 函数

      示例1
<?php 
// include.php filefunction a() {
    b();
}
function b() {
    c();
}
function c(){
    debug_print_backtrace();
}
a();
?>

      示例2
<?php 
// 文件 test.php// 这是你应该运行的文件include 'include.php';
?>

阅读全文 »

错误处理 函数 error_clear_last 清除最近一次错误

发表日期:2021-07-01 08:54:55 | 来源: | 分类:错误处理 函数

      示例1
<?php 
var_dump(error_get_last());
error_clear_last();
var_dump(error_get_last());
@$a = $b;
var_dump(error_get_last());
error_clear_last();
var_dump(error_get_last());
?>

阅读全文 »

错误处理 函数 error_get_last 获取最后发生的错误

发表日期:2021-07-01 08:54:55 | 来源: | 分类:错误处理 函数

      示例1
<?php 
echo $a;
print_r(error_get_last());
?>

阅读全文 »

JAVA基础 8.File 文件

发表日期:2021-06-30 20:01:30 | 来源: | 分类:JAVA基础

      示例1
import java.io.File;
import java.io.IOException;


public class FileDemo01 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		File file = new File("d:"+File.separator+"test.txt");

		System.out.println(File.separator);// \
		System.out.println(File.separatorChar);// \
		System.out.println(File.pathSeparator);// ;
		System.out.println(File.pathSeparatorChar);// ;
		try {
			file.createNewFile();//创建文件
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if(file.exists()){//判断文件是否存在
			//file.delete();//产出文件
		}
	}

}
      示例2
import java.io.File;



public class FileDemo02 {
	private static int ListModel = 0;//0:列文件夹和文件、1:只列出文件夹、2:只列出文件

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ListModel = 1;
		File file = new File("d:"+File.separator);
		listFile(file);
		
	}
	
	private static void listFile(File file) {
		// TODO Auto-generated method stub
		
		if (file!=null) {
			if (file.isDirectory()) {
				if (ListModel!=2) {
					System.out.println(file);//列出文件夹
				}
				File str[]  = file.listFiles();
				if (str!=null) {
					for (int i = 0; i < str.length; i++) {
						listFile(str[i]);
					}
				}
			}else {
				if (ListModel!=1) {
					System.out.println(file);//列出文件夹
				}
			}
		}
	}

}
      示例3
package File;

import java.io.File;
import java.io.IOException;

public class FileDemo {

   /**
    * @param args
    */
   public static void main(String[] args) {
      // TODO Auto-generated method stub

      File file = new File("D:"+File.separator+"test.txt");
      if(!file.exists()){
         try {
            System.out.println("文件不存在,创建!");
            file.createNewFile();
         } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
         }
      }else {
         System.out.println("文件存在,不创建!");
      }

      File dir = new File("D:"+File.separator+"dir");

      if(!dir.exists()){
         System.out.println("文件夹不存在,创建!");
         dir.mkdir();
      }
      if(file.exists()){
         file.delete();
         System.out.println("删除文件!");
      }
      File disk = new File("D:"+File.separator);
      String[] lists = disk.list();//只列出名称
      for (int i = 0; i < lists.length; i++) {
         System.out.println(lists[i]);
      }

      File[] lists2 = disk.listFiles();//列出完整路径
      for (int i = 0; i < lists2.length; i++) {

         if (isDir(lists2[i].toString())) {
            System.out.println(lists2[i]+"是目录");
         }else {
            System.out.println(lists2[i]+"不是目录");
         }
      }


   }

   public static boolean isDir(String path){
      return new File(path).isDirectory();
   }

}

阅读全文 »

JAVA基础 16.Thead 多线程

发表日期:2021-06-30 19:58:59 | 来源: | 分类:JAVA基础

      示例1
class MyThead extends Thread {
	
	private  int ticket =10;

	private String name;
	
	
	public MyThead(String name){
		this.name = name;
	}
	
	public void run(){
		for (int i = 0; i < 10; i++) {
			if (this.ticket>0) {
				System.out.println(name+":"+i+"  ticket:"+ticket--);
			}
			
		}
	}

}
public class TheadDemo01 extends Thread {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyThead m1 = new MyThead("A");
		MyThead m2 = new MyThead("B");
		/*
		m1.run(); 
		m2.run();
		A:0
		A:1
		A:2
		A:3
		A:4
		A:5
		A:6
		A:7
		A:8
		A:9
		B:0
		B:1
		B:2
		B:3
		B:4
		B:5
		B:6
		B:7
		B:8
		B:9
		run() 不会实现多线程
                */
		m1.start();
		m2.start();
	}

}
      示例2
class MyThead2 implements Runnable{

	private String name;
	private  int ticket =10;
	
	
	public MyThead2(String name){
		this.name = name;
	}
	
	public void run(){
		for (int i = 0; i < 10; i++) {
			if (ticket>0) {
				System.out.println(name+":"+i+"  ticket:"+ticket--);
			}
			
		}
	}

	public void start() {
		// TODO Auto-generated method stub
		
	}

}
public class TheadDemo02 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		MyThead2 m1 = new MyThead2("A");
		MyThead2 m2 = new MyThead2("B");
		Thread t1 = new Thread(m1);
		Thread t2 = new Thread(m2);
		t1.start();
		t2.start();
		
		System.out.println(t2.getName());//setName() ...设置线程名称
	}

}
      示例3
class MyThead3 implements Runnable{

	private  int ticket =10;
	
	
	public MyThead3(){
	}
	
	public void run(){
		for (int i = 0; i < 10; i++) {
			if (this.ticket>0) {
				System.out.println(i+"   "+Thread.currentThread().getName()+"  ticket:"+ticket--);
			}
			
		}
	}

}
public class TheadDemo03 {

	/**
	 * @param args
	 */
	public static void main(String[] args) { 
		// TODO Auto-generated method stub

		MyThead3 mt = new MyThead3();
		new Thread(mt,"A").start();
		new Thread(mt,"B").start();
		new Thread(mt,"C").start();
	}

}
      示例4
class MyThread4 implements Runnable{
	private int ticket = 10;
	
	public MyThread4(){
	}
	
	public void run(){
		for (int i = 0; i < 10; i++) {
			
			//System.out.println(name+":"+i);
			
			if (this.ticket>0) {
				System.out.println(Thread.currentThread().getName()+":"+i+"  ticket:"+ticket--);
			}
			
		}
	}

	
}
public class TheadDemo04 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根

		MyThread4 mt1 = new MyThread4();
		new Thread(mt1).run();
		new Thread(mt1).run();
	}

}

阅读全文 »

JAVA基础 11.​FileInputStream和FileOutputStream

发表日期:2021-06-30 19:50:39 | 来源: | 分类:JAVA基础

      示例1
package stream;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

public class InputStreamDemo {

    /**
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub

        File file = new File("D:" + File.separator + "123.txt");

        FileInputStream inputStream = new FileInputStream(file);
        /**/
        byte[] b = new byte[1024];

        int length = inputStream.read(b);//获取文件内容长度
        System.out.println(new String(b));

        int length2 = (int) file.length();//第二中方法(获取文件大小[字节数])
        System.out.println(new String(b, 0, length2));


      /*
      System.out.println(file.length());

      byte[] b2 = new byte[(int) file.length()];
      int len = 0;
      int temp = 0;
      while ((temp=inputStream.read())!=-1) {
         b2[len] = (byte) temp;
         len++;
      }
      System.out.println(new String(b2,0,len));

      */

        inputStream.close();
    }

}
      示例2
package stream;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class OutputStreamDemo {

   /**
    * @param args
    * @throws IOException 
    */
   public static void main(String[] args) throws IOException {
      // TODO Auto-generated method stub
      
      File file = new File("D:"+File.separator+"OutputStreamDemo.txt");
      FileOutputStream fOutputStream = new FileOutputStream(file,true);
      String string ="true-追加写入模式";
      
      fOutputStream.write(string.getBytes());
      fOutputStream.close();
   }

}

阅读全文 »

JAVA基础 7.Cloneable

发表日期:2021-06-30 19:49:04 | 来源: | 分类:JAVA基础

      示例1
class Person implements Cloneable{
	private String name;
	
	public Person(String name) {
		this.name = name;
	}
	// TODO Auto-generated constructor stub

	public void setName(String name){
		this.name = name;
	}

	public String getName(){
		return this.name;
	}
	
	public Object clone() throws CloneNotSupportedException{
			return super.clone();
		
	}
}

public class CloneDemo01 {
	/**
	 * @param args
	 * @throws CloneNotSupportedException 
	 */
	
	public static void main(String[] args) throws CloneNotSupportedException {
		// TODO Auto-generated method stub
		Person person1 = new Person("张三");
		Person person2 = (Person)person1.clone();
		person2.setName("李四");
		System.out.println(person1);
		System.out.println(person2);
	}
}

阅读全文 »

JAVA基础 4.Date

发表日期:2021-06-30 19:37:09 | 来源: | 分类:JAVA基础

      示例1
import java.util.Date;


public class DateDemo01 extends Date {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Date date =  new Date();
		System.out.println(date);//Tue Sep 10 15:43:13 CST 2013
	}

}
      示例2
import java.util.Calendar;
import java.util.GregorianCalendar;


public class DateDemo02 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Calendar calendar =  new GregorianCalendar();
		System.out.println("year:"+calendar.get(Calendar.YEAR));//year:2013
		System.out.println("month:"+(calendar.get(Calendar.MONTH)+1));//month:9
		System.out.println("day:"+calendar.get(Calendar.DAY_OF_MONTH));//day:10
		System.out.println("hour:"+calendar.get(Calendar.HOUR_OF_DAY));//hour:15
		System.out.println("minute:"+calendar.get(Calendar.MINUTE));//minute:50
		System.out.println("second:"+calendar.get(Calendar.SECOND));//second:30
		System.out.println("millksecond:"+calendar.get(Calendar.MILLISECOND));//Millisecond:862
	}

}
      示例3
import java.text.DateFormat;
import java.text.FieldPosition;
import java.text.ParsePosition;
import java.util.Date;



public abstract class DateDemo03 extends DateFormat {


	public static void main(String[] args) {
		// TODO Auto-generated method stub
		DateFormat dateFormat1 = DateFormat.getDateInstance();
		DateFormat dateFormat2 = DateFormat.getDateTimeInstance();

		System.out.println("Date:"+dateFormat1.format(new Date()));//Date:2013-9-10
		System.out.println("DateTime:"+dateFormat2.format(new Date()));//DateTime:2013-9-10 16:01:54
	}

}
      示例4
import java.text.DateFormat;
import java.text.FieldPosition;
import java.text.ParsePosition;
import java.util.Date;
import java.util.Locale;


public class DateDemo04 extends DateFormat {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	public StringBuffer format(Date date, StringBuffer toAppendTo,FieldPosition fieldPosition) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Date parse(String source, ParsePosition pos) {
		// TODO Auto-generated method stub
		return null;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		DateFormat dateFormat1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN"));
		DateFormat dateFormat2 = DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN"));
		System.out.println("Date:"+dateFormat1.format(new Date()));//Date:2013年9月10日
		System.out.println("DateTime:"+dateFormat2.format(new Date()));//DateTime:2013年9月10日 下午04时05分59秒 CST
	}

}
      示例5
//丢了
      示例6
import java.text.SimpleDateFormat;
import java.util.Date;

import com.sun.org.apache.bcel.internal.generic.NEW;


public class DateDemo06 extends SimpleDateFormat {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date())
		// TODO Auto-generated method stub
		String strDate = "2013-9-10 16:07:28.345";
		String par1 = "yyyy-MM-dd HH:mm:ss.SSS";
		String par2 = "yyyy年MM月dd日 HH使mm分ss秒SSS毫秒";
		SimpleDateFormat sFormat1 = new SimpleDateFormat(par1);
		SimpleDateFormat sFormat2 = new SimpleDateFormat(par2);
		Date date = null;
		try {
			date = sFormat1.parse(strDate);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		System.out.println(date);
		System.out.println(sFormat2);
		System.out.println(sFormat2.format(date));
		System.out.println(sFormat2.format(new Date()));
		System.out.println(new SimpleDateFormat("yyyy年MM月dd日 HH使mm分ss秒SSS毫秒").format(new Date()));
	}

}
      示例7
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class DateDemo07 {

	public static void main(String[] args) throws ParseException {
		String date = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date());
		//System.out.println(date);
		String string = "2015年11月02日 01:37:39";
		
		String par_res = "yyyy年MM月dd日 HH:mm:ss";
		SimpleDateFormat resFormat = new SimpleDateFormat(par_res);
		Date resDateTime = resFormat.parse(string);
		
		String par_data = "yyyy-MM-dd";
		SimpleDateFormat dataFormat = new SimpleDateFormat(par_data);
		
		
		String par_time = "HH:mm";
		SimpleDateFormat timeFormat = new SimpleDateFormat(par_time);

		System.out.println(dataFormat.format(resDateTime));
		System.out.println(timeFormat.format(resDateTime));
	}
}

阅读全文 »

PHP杂项 usort-使用用户自定义的比较函数对数组中的值进行排序

发表日期:2021-06-29 09:57:29 | 来源: | 分类:PHP杂项

      示例1
<?php 
function cmp($a, $b){
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp");
foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>
      示例2
<?php 
function cmp($a, $b){
    return strcmp($a["fruit"], $b["fruit"]);
}
$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";
usort($fruits, "cmp");
while (list($key, $value) = each($fruits)) {
    echo "$fruits[$key]: " . $value["fruit"] . "\n";
}
?>
      示例3
<?php 
class TestObj {
    var $name;
    function TestObj($name)    {
        $this->name = $name;
    }
    /* This is the static comparing function: */
    static function cmp_obj($a, $b)    {
        $al = strtolower($a->name);
        $bl = strtolower($b->name);
        if ($al == $bl) {
            return 0;
        }
        return ($al > $bl) ? +1 : -1;
    }
}
$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");
usort($a, array("TestObj", "cmp_obj"));
foreach ($a as $item) {
    echo $item->name . "\n";
}
?>
      示例4
<?php 
$array[0] = array('key_a' => 'z', 'key_b' => 'c');
$array[1] = array('key_a' => 'x', 'key_b' => 'b');
$array[2] = array('key_a' => 'y', 'key_b' => 'a');
function build_sorter($key) {
    return function ($a, $b) use ($key) {
        return strnatcmp($a[$key], $b[$key]);
    }
;
}
usort($array, build_sorter('key_b'));
foreach ($array as $item) {
    echo $item['key_a'] . ', ' . $item['key_b'] . "\n";
}
?>

阅读全文 »

Javascript基础-李炎恢系列课程 第33章 Ajax

发表日期:2021-06-29 09:42:09 | 来源: | 分类:Javascript基础-李炎恢系列课程

阅读全文 »

Javascript基础-李炎恢系列课程 第32章 JSON

发表日期:2021-06-29 09:41:48 | 来源: | 分类:Javascript基础-李炎恢系列课程

阅读全文 »

Javascript基础-李炎恢系列课程 第31章 XPath

发表日期:2021-06-29 09:41:28 | 来源: | 分类:Javascript基础-李炎恢系列课程

阅读全文 »

Javascript基础-李炎恢系列课程 第30章 XML

发表日期:2021-06-29 09:41:12 | 来源: | 分类:Javascript基础-李炎恢系列课程

阅读全文 »

Javascript基础-李炎恢系列课程 第29章 Cookie与存储

发表日期:2021-06-29 09:40:54 | 来源: | 分类:Javascript基础-李炎恢系列课程

阅读全文 »

全部博文(1580)
集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。