×

php实例

php实例(php实例化对象)

admin admin 发表于2023-04-12 22:41:10 浏览71 评论0

抢沙发发表评论

本文目录一览:

php几种排序算法实例详解

四种排序算法的PHP实现:

1) 插入排序(Insertion Sort)的基本思想是: 

每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。

2) 选择排序(Selection Sort)的基本思想是: 

每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。

3) 冒泡排序的基本思想是: 

两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。

4) 快速排序实质上和冒泡排序一样,都是属于交换排序的一种应用。所以基本思想和上面的冒泡排序是一样的。

1. sort.php文件如下:

?php

class Sort 卜判{

  private $arr  = array(); 

  private $sort  = 'insert';

  private $marker = '_sort';

  private $debug = TRUE;

  /**

   * 构造函数

   *

   * @param  array  例如:

   $config = array (

   'arr' = array(22,3,41,18) , //需要排序的数组值

   'sort' = 'insert', //可能值: insert, select, bubble, quick

   'debug' = TRUE //可能值: TRUE, FALSE

   )

   */

  public function construct($config = array()) {

    if ( count($config)  0) {

      $this-_init($config);

    }

  }

  /**

   * 获取排序结果

   */

  public function display() {

    return $this-arr;

  }

  /**

   * 初始化

   *

   * @param  array

   * @return bool

   */

  private function _init($config = array()) {

    //参数判断

    if ( !is_array($config) OR count($config) == 0) {

      if ($this-debug === TRUE) {

        $this-_log("sort_init_param_invaild");

      }

      return FALSE;

    }

    //初始化成员变量

    foreach ($config 码弊颤as $key = $val) {

      if ( isset($this-$key)) {

        $this-$key = $val;

      }

    }

    //调用相应的成员方法完成排序

    $method = $this-sort . $this-marker;

    if ( ! method_exists($this, $method)) {

      if ($this-debug === TRUE) {

        $this-_log("sort_method_invaild");

      }

      return FALSE;

    }

    if ( FALSE === ($this-arr = $this-$method($this-arr)))

      return FALSE;

    return TRUE;

  }

  /**

   * 插入排序

   * 

   * @param  array

   * @return bool

   */

  private function insert_sort($arr) {

    //参数判断

    if ( ! is_array($arr) OR count($arr) == 0) {

      if ($this-debug === TRUE) {

        $this-_log("sort_array(insert)_invaild");

      }

      return FALSE;

    }

    //具体实现

    $count = count($arr);

    for ($i = 1; $i  $count; $i++) {

      $tmp = $arr[$i];

      for($j = $i-1; $j = 0; $j--) { 

        if($arr[$j]  $tmp) {

          $arr[$j+1] = $arr[$j];

          $arr[$j] = $tmp;

        }

      }

    }

    return $arr;

  }

  /**

   * 选择排序

   * 

   * @param  array

   * @return bool

   */

  private function select_sort($arr) {

    //参数判断

    if ( ! is_array($arr) OR count($arr) == 0) {

      if 迟败($this-debug === TRUE) {

        $this-_log("sort_array(select)_invaild");

      }

      return FALSE;

    }

    //具体实现

    $count = count($arr);

    for ($i = 0; $i  $count-1; $i++) {

      $min = $i;

      for ($j = $i+1; $j  $count; $j++) {

        if ($arr[$min]  $arr[$j]) $min = $j;

      }

      if ($min != $i) {

        $tmp = $arr[$min];

        $arr[$min] = $arr[$i];

        $arr[$i] = $tmp;

      }

    }

    return $arr;

  }

  /**

   * 冒泡排序

   * 

   * @param  array

   * @return bool

   */

  private function bubble_sort($arr) {

    //参数判断

    if ( ! is_array($arr) OR count($arr) == 0) {

      if ($this-debug === TRUE) {

        $this-_log("sort_array(bubble)_invaild");

      }

      return FALSE;

    }

    //具体实现

    $count = count($arr);

    for ($i = 0; $i  $count; $i++) {

      for ($j = $count-1; $j  $i; $j--) {

        if ($arr[$j]  $arr[$j-1]) {

          $tmp = $arr[$j];

          $arr[$j] = $arr[$j-1];

          $arr[$j-1] = $tmp;

        }

      }

    }

    return $arr;  

  }

  /**

   * 快速排序

   * @by 

   * @param  array

   * @return bool

   */

  private function quick_sort($arr) {

    //具体实现

    if (count($arr) = 1) return $arr; 

    $key = $arr[0];

    $left_arr = array();

    $right_arr = array();

    for ($i = 1; $i  count($arr); $i++){

      if ($arr[$i] = $key)

        $left_arr[] = $arr[$i];

      else

        $right_arr[] = $arr[$i];

    }

    $left_arr = $this-quick_sort($left_arr);

    $right_arr = $this-quick_sort($right_arr); 

  

    return array_merge($left_arr, array($key), $right_arr);

  }

  /**

   * 日志记录

   */

  private function _log($msg) {

    $msg = 'date[' . date('Y-m-d H:i:s') . '] ' . $msg . '\n';

    return @file_put_contents('sort_err.log', $msg, FILE_APPEND);

  }

}

/*End of file sort.php*/

/*Location htdocs/sort.php */

2. sort_demo.php文件如下:

?php

require_once('sort.php');

$config = array (

  'arr' = array(23, 22, 41, 18, 20, 12, 200303,2200,1192) ,

  //需要排序的数组值

  'sort' = 'select',

  //可能值: insert, select, bubble, quick

  'debug' = TRUE

  //可能值: TRUE, FALSE

);

$sort = new Sort($config);

//var_dump($config['arr']);

var_dump($sort-display());

/*End of php*/

php去掉一维数组的键值的实例方法

在 PHP 中,数组的旅如每个元素都是由键值对(key-value)组成,通过元素的键名来访问对应键的值。

提示:“索引”和“键名”指的是同一样东西,“索引”多指数组数字形式的下标。

有时候,我们需要去掉一维数组的键值(value),只留下数组的键名(key),这要怎么做?

此时,就可以使用array_keys()函数了。

array_key() 函数可以获取数组中的部分或所有键名,语法格式如下:

array_keys($array [, $search_value = null [, $strict = false]])

参数说明如下:

$array:必选参数,为待操作的数组;

$search_value:可选参数,如果参数为空,则函数会返回数组中的所有键名,如果指定了该参数,则函数就只会返回值为 $search_value 的键名;

$strict:可选参数,判断在搜索的时候是否使用严格模式袭镇大,$strict 默认为 false,也就是非严格模式,在搜索时只比较类型,不比较类型,若将 $strict 设置为 true,也就是严格模式,在搜索时同时比较值和类型,等价于===。-php实例

array_key() 函数会以数组形式返回得到的数组键名。

 'it网',         'url'   = '',         'title' = 'PHP学习教程', ); $key=array_keys($array); var_dump($key); ? -php实例

可以看到,去掉了一维数组的键值(value),只返回了一维数组的键名(key)。

内容扩展:

1、使用unset()函数可以用于取消设置关联数组中的键及其值。

// 声明关联数组 $arr = array(     "1" = "加",     "2" = "减",     "3" = "乘",     "4" 拍竖= "除" ); // 关联数组中删除键1及其值 unset($arr['1']); // 显示数组元素 var_dump($arr); -php实例

2、使用array_diff_key()函数用于获取一个或多个数组之间的差集。

此函数比较一个或多个数组之间的键并返回它们之间的差集。

// 声明关联数组 $arr = array(     "1" = "春",     "2" = "夏",     "3" = "秋",     "4" = "冬", ); // 从关联数组中删除键1及其值 $result = array_diff_key($arr,     array_flip((array) ['1'])); // 显示数组元素 var_dump($result); -php实例

到此这篇关于php去掉一维数组的键值的实例方法的文章就介绍到这了。

                             

PHP实现的pdo连接数据库并插入数据功能简单示例

本文实例讲述了PHP实现的pdo连接数据库并插入数据功能。分享给大家供大家参考,具体如下:

创建橡陪配置文件

pdo_config.php

?php

$db_Type

=

"mysql";//数据库类型

$host

=

"localhost";//主机名

$dbName

=

"test";//数据库名

$userName

=

"root";//用户名

$password

=

"梁旅蠢root";//密码

$dsn

=

"{$db_Type}:host={$host};dbname={$dbName}";

?

pdo插入数据库

pdo_insert.php

?php

header('Content-type:text/html;

charset=utf-8');

require

'pdo_config.php';

try{

$pdo

=

new

PDO

($dsn,$userName,$password);//创建一个连接对象

$pdo-exec('set

names

utf8');//设置编码

$sql

=

"INSERT

student

(name,email)

VALUES

('李四','123@qq.com')";

$pdo-exec($sql);

}catch

(PDOException

$e){

die('操作失败'.$e-getMessage());

}

//关闭连接

$pdo

=

null;

?

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入镇雀门教程》及《php常见数据库操作技巧汇总》-php实例

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:关于php连接mssql:pdo

odbc

sql

serverPHP5中使用PDO连接数据库的方法PHP中PDO连接数据库中各种DNS设置方法小结ThinkPHP框架基于PDO方式连接数据库操作示例PHP使用ODBC连接数据库的方法tp5(thinkPHP5)框架连接数据库的方法示例PHP7使用ODBC连接SQL-php实例

Server2008

R2数据库示例【基于thinkPHP5.1框架】tp5(thinkPHP5)操作mongoDB数据库的方法thinkPHP5实现数据库添加内容的方法tp5(thinkPHP5)框架数据库Db增删改查常见操作总结PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】-php实例

php目录操作实例代码

这篇文章主要介绍了php目录操作实例代码,需要的朋友可以参考下

代码如下:

?php

/**

*

listdir

*/

header("content-type:text/html;charset=utf-8");

$dirname

=

"./final/factapplication";

function

listdir($dirname)

{

$ds

=

opendir($dirname);

while

(false

!==

($file

=

readdir($ds)))

{

$path

=

$dirname.'/'.$file;

if

($file

!=

'.'

$file

!=

'..')

{

if

(is_dir($path))

{

listdir($path);

}

else

{

echo

$file."br";

}

}

}

closedir($ds);

}

listdir($dirname);

核心:递归的经典应用,以及文件和目兄宴录的基本操作。

代码如下:

?php

/**

*

copydir

*/

$srcdir

=

"../fileupload";

$dstdir

=

"b";

function

copydir($srcdir,

$dstdir)

{

mkdir($dstdir);

$ds

=

opendir($srcdir);

while

(false

!==

($file

=

readdir($ds)))

{

$path

=

$srcdir."/".$file;

$dstpath

=

$dstdir."/知缓".$file;

if

($file

!=

"."

$file

!=

"..")

{

if

(is_dir($path))

{

copydir($path,

$dstpath);

}

else

{

copy($path,

$dstpath);

}

}

}

closedir($ds);

}

copydir($srcdir,

$dstdir);

核心:copy函数。

代码如下:

?php

/**

*

deldir

*/

$dirname

=

'a';

function

deldir($dirname)

{

$ds

=

opendir($dirname);

while

(false

!==

($file

=

readdir($ds)))

{

$path

=

$dirname.'/'.$file;

if($file

!=

'.'

$file

!=

'..')

{

if

(is_dir($path))

{

deldir($path);

}

else

{

unlink($path);

}

}

}

closedir($ds);

return

rmdir($dirname);

}

deldir($dirname);

核心:注意unlink删除的是带搭尘模path的file。

代码如下:

?php

/**

*

dirsize

*/

$dirname

=

"a";

function

dirsize($dirname)

{

static

$tot;

$ds

=

opendir($dirname);

while

(false

!==

($file

=

readdir($ds)))

{

$path

=

$dirname.'/'.$file;

if

($file

!=

'.'

$file

!=

'..')

{

if(is_dir($path))

{

dirsize($path);

}

else

{

$tot

=

$tot

+

filesize($path);

}

}

}

return

$tot;

closedir($ds);

}

echo

dirsize($dirname);

核心:通过判断$tot在哪里返回,理解递归函数。

php实现编辑和保存文件的方法

文章主要介绍了php实现编辑和保存文件的方法,涉及php针对文件的读取、编辑和保存操作的'相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下。

本文实例讲述了php实现编辑和保存文件的方法。分享给大家供大家参考。具体如下:

save_file.php:

?php

session_start();

$handle = fopen($_POST['original_file_name'], "w");

$text = $_POST['file_contents'];

if(fwrite($handle, $text) == FALSE){

$_SESSION['error'] = 'span class="redtxt"There was an error/span';

}else{

 唤铅返 $_SESSION['error'] = 'span class="redtxt"File edited successfully/span';

}

fclose($handle);

header("Location: ".$_POST['page']);

?

read_file.php:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

""

html xmlns=""

head

meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /

titleUntitled Document/title

/head

form action="savecontents.php" method="post"

textarea name="file_contents" style="width:700px;height:600px;"

?php

$fileName = "location/of/orignal/file/my_file.php";

$handle = fopen($fileName, "r");

while (!feof($handle)){

$text = fgets($handle);

echo $text;

}

?

 激态 /textarea

 和饥 input type="hidden" value=" ? echo $fileName; ? " name="original_file_name" /

/form

body

/body

/html

希望本文所述对大家的php程序设计有所帮助。

实现地址自动识别实例(PHP)

文章正文

址自动识别现在普遍,特别是用在快递填写地址,姓名,手机号码的时候,会把这些按照一定的规范填写后,点击自动识别后,会自动填写到各自的input。最近也简单的实现了这个功能,给后台添加用户的时候,自动识别地址。以下是效果图-php实例

具体问题具体姿凯分析!代码实现基于laravel完成。一个laravel完整的功能得具备这些:路由route,Model, View, Controller, 我这里用的有依赖注入服务容器等功能,当然,用到地址,你首先要有地址库。。。-php实例

下面来看看是如何实现的,这里我只贴出核心代码

UsersController控制器

在伏册握这里新建构造函数,实现容器的依赖注入 UsersRepository

接下来就新缺庆建地址识别的方法, $discernDel 接收的数据是从前端传过来的,后面再贴前端代码。 业务代码处理交给容器 UsersRepository 里的方法 getDiscern 处理 -php实例

来看看 userRepository容器处理地址识别的各种业务代码

上面的方法处理手机,名称,和地址处理,地址处理有些繁杂,因为有时候填写的地址有不一样的,比如广西省,有些就填写广西壮族自治区,所以 getAddressArrar 方法处理地址匹配信息,根据自己的业务做调整,如下-php实例

前端html部分代码

基本上能看得懂的。jquery用到 getDiscern(); 方法,手机号码,姓名,地址等input这里就不一一列出了。大家根据下面的jquery都能想象到

jquery代码部分

ajax post后交给url: getDiscern 处理,这个就是上面controller的方法,success返回的数据后再追加到每个input里,最后再清除掉自动识别地址框的数据

整个过程简单,又清晰明了,以上就是我的代码,分享给大家,觉得哪个地方不对劲的,欢迎留言吐槽!