Coder Social home page Coder Social logo

php's People

Contributors

magicmai avatar

Watchers

 avatar

php's Issues

echo、print、printf、print_r、var_dump的区别

目录

  • echo ------------- 输出一个或多个字符串。
  • print ------------- 输出字符串。
  • printf ------------ 输出格式化字符串。
  • print_r ----------- 打印关于变量的易于理解的信息。
  • var_dump ------- 打印变量的相关信息。

echo —— 输出一个或多个字符串。(PHP 4, PHP 5, PHP 7)

【注意】不能输出数组。

//语法:
void echo ( string $arg1 [, string $... ] )

//范例:
echo "Hello World";

echo "This spans
multiple lines. The newlines will be
output as well";

$foo = "foobar";
echo $foo;

print —— 输出字符串。(PHP 4, PHP 5, PHP 7)

//语法:
int print ( string $arg )

//范例:
print("Hello World");

$bar = array("value" => "foo");
print "this is {$bar['value']} !";     // this is foo !

printf —— 输出格式化字符串。(PHP 4, PHP 5, PHP 7)

//语法:
int printf ( string $format [, mixed $args [, mixed $... ]] )

//范例:
printf("%d", "17,999");  // 17

print_r —— 打印关于变量的易于理解的信息。 (PHP 4, PHP 5, PHP 7)

//语法:
bool print_r ( mixed $expression [, bool $return ] )

//范例:
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x','y','z'));
print_r ($a);  
// Array ( [a] => apple [b] => banana [c] => Array ( [0] => x [1] => y [2] => z ) )

var_dump —— 打印变量的相关信息。(PHP 4, PHP 5, PHP 7)

//语法:
void var_dump ( mixed $expression [, mixed $... ] )

//范例:
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
/*
D:\php_demo\phpinfo.php:15:
array (size=3)
  0 => int 1
  1 => int 2
  2 => 
    array (size=3)
      0 => string 'a' (length=1)
      1 => string 'b' (length=1)
      2 => string 'c' (length=1)
*/

PDO学习笔记

第3章 PDOStatement对象的使用

3-3 bindParam()方法绑定参数

bindParam():绑定一个参数到指定变量名。

// pdo_bindParam14.php
$stmt->bindParam(":id", $id, PDO::PARAM_INT);

3-4 bindValue()方法绑定参数

// pdo_bindValue15.php
// 通过问号参数绑定
$sql = 'INSERT user(username, password, email) VALUES(?,?,?)';
$stmt = $pdo->prepare($sql);
$username = 'David';
$stmt->bindValue(1, $username);

3-5 bindColumn()方法绑定参数

// pdo_bindColumn17.php
$stmt->bindColumn(1, $username);

3-6 fetchColumn()方法从结果集中返回一列

3-7 debugDumpParams()方法打印一条预处理语句

3-8 nextRowset()方法将结果集中指针下移

存储过程

第4章 PDO事务处理

4-1 PDO错误处理模式

4-2 PDO事务处理

第5章 数据库操作类的封装

5-1 PDO效率剖析

5-2 数据库操作类之构造函数

【报错】Wamp点击提示Could not execute run action

问题描述

点击 Localhost 提示:

Could not execute menu item (internal error)
[exception] Could not execute run action:系统找不到指定的文件

原因

最近重装 Chrome 浏览器,更换了安装位置

解决

  1. 打开 Wamp 的安装路径,我的是 D:\wamp,找到 wampmanager.conf 文件并用编辑器打开。

  2. 找到:

editor ="D:/program files/Sublime Text 3/sublime_text.exe"
navigator ="C:/......(省略)"

修改为正确的路径即可,注意使用 “/” 代替 “\”

php提示"undefined index"的几种解决方法

Notice: Undefined index: act in D:\test\post.php on line 20

Notice: Undefined variable: Submit ......

出现上面这些是 PHP 的提示而非报错,PHP 本身不需要事先声明变量即可直接使用,但是对未声明变量会有提示。一般作为正式的网站会把提示关掉的,甚至连错误信息也被关掉。

【解决方法: 】

方法1:修改服务器配置

修改 php.ini 中的 error配置下错误显示方式:将 error_reporting = E_ALL 修改为

error_reporting = E_ALL & ~E_NOTICE 

修改后重启下APCHE服务器,方可生效。


方法2:对变量进行初始化


方法3:做判断

isset($_post['']), empty($_post['']) if -- else


方法4:加 @

在出现 notice 代码之前加上 @@ 表示这行有错误或是警告不要输出

@$username = $_post['username']; 

在变量前面加上一个 @,如

if (@$_GET['action'] == 'save') { ... }

方法5:最后一种很实用,是别人写的一个函数,通过这个函数进行传递值。 定义一个函数:

function _get($str) { 
        $val = !empty($_GET[$str]) ? $_GET[$str] : null; 
        return $val; 
} 

然后在用的时候,直接用 _get('str') 代替 $_GET['str'] 就行啦~


[PHP-Core-Error]

error_reporting = E_ALL & ~E_NOTICE; (php.ini )

error_reporting() 设置 PHP 的报错级别并返回当前级别。
; 错误报告级别是位字段的叠加,推荐使用 E_ALL | E_STRICT
; 1 E_ERROR 致命的运行时错误
; 2 E_WARNING 运行时警告(非致命性错误)
; 4 E_PARSE 编译时解析错误
; 8 E_NOTICE 运行时提醒(经常是bug,也可能是有意的)
; 16 E_CORE_ERROR PHP启动时初始化过程中的致命错误
; 32 E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错)
; 64 E_COMPILE_ERROR 编译时致命性错
; 128 E_COMPILE_WARNING 编译时警告(非致命性错)
; 256 E_USER_ERROR 用户自定义的致命错误
; 512 E_USER_WARNING 用户自定义的警告(非致命性错误)
; 1024 E_USER_NOTICE 用户自定义的提醒(经常是bug,也可能是有意的)
; 2048 E_STRICT 编码标准化警告(建议如何修改以向前兼容)
; 4096 E_RECOVERABLE_ERROR 接近致命的运行时错误,若未被捕获则视同 E_ERROR
; 6143 E_ALL 除E_STRICT外的所有错误(PHP6中为8191,即包含所有)

使用方法:

error_reporting(0);    //禁用错误报告 
error_reporting(E_ALL ^ E_NOTICE);    //显示除去 E_NOTICE 之外的所有错误信息 
error_reporting(E_ALL^E_WARNING^E_NOTICE);    //显示除去E_WARNING E_NOTICE 之外的所有错误信息 
error_reporting(E_ERROR | E_WARNING | E_PARSE);    //显示运行时错误,与error_reporting(E_ALL ^ E_NOTICE);效果相同。error_reporting(E_ALL);    //显示所有错误

参考:
http://www.jb51.net/article/30328.htm 《php提示undefined index的几种解决方法》
http://www.jb51.net/article/27560.htm 《PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明》

wamp设置mysql编码格式

需要将 MySQL 的字符集改为 UTF-8

左键点击托盘区的 WampServer 图标,

选择 MySQL --> my.ini,就会打开 MySQL 的配置文件;

在 [client] 段落增加:

default-character-set=utf8

在 [mysqld] 段落增加:

character_set_server=utf8

重启MySQL服务即可。

Wamp安装注意事项

1. 自定义网站根目录

参考:WAMPServer自定义网站根目录

2. 修改默认浏览器和编辑器

  • 打开 wamp 的根目录,找到 wampmanager.conf 文件,打开。

  • 找到 navigator 开头的行:

navigator = "E:\Users\..."

改为你需要使用的浏览器的地址即可,同理,修改默认编辑器,找到 editor 开头的行:

editor = "D:\program files\Sublime Text 3\sublime_text.exe"

改为你要使用的编辑器地址即可。

PHP Ajax 跨域问题最佳解决方案

通过设置 Access-Control-Allow-Origin 来实现跨域。

例如:客户端的域名是 client.runoob.com,而请求的域名是 server.runoob.com

如果直接使用ajax访问,会有以下错误:

XMLHttpRequest cannot load http://server.runoob.com/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://client.runoob.com' is therefore not allowed access.

1、允许单个域名访问

指定某域名 (http://client.runoob.com) 跨域访问,则只需在 http://server.runoob.com/server.php 文件头部添加如下代码:

header('Access-Control-Allow-Origin:http://client.runoob.com');

2、允许多个域名访问

指定多个域名 (http://client1.runoob.com、http://client2.runoob.com等) 跨域访问,则只需在http://server.runoob.com/server.php 文件头部添加如下代码:

$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';  
  
$allow_origin = array(  
    'http://client1.runoob.com',  
    'http://client2.runoob.com'  
);  
  
if(in_array($origin, $allow_origin)){  
    header('Access-Control-Allow-Origin:'.$origin);       
} 

3、允许所有域名访问

允许所有域名访问则只需在 http://server.runoob.com/server.php 文件头部添加如下代码:

header('Access-Control-Allow-Origin: *'); 

原文:http://www.runoob.com/w3cnote/php-ajax-cross-border.html

MySQL报错合集

1. 查询语句为:SELECT * FROM user GROUP BY status LIMIT 0, 25;

【报错】
#1055 - Expression # 1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'info.user.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

【解决】

①查看sql_mode:

select @@sql_mode

-- 查询出来的值为:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

②去掉 ONLY_FULL_GROUP_BY,重新设置值

set @@sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

③上面是改变了全局 sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行:

set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

参考:
https://www.2cto.com/database/201707/656712.html
http://www.ywnds.com/?p=8184 《MySQL 5.7默认ONLY_FULL_GROUP_BY语义介绍》
https://zhidao.baidu.com/question/333574512.html


PHP报错合集

1. Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

解决:改为 mysqli 或 PDO 即可

mysqli:

$con = mysqli_connect('localhost', 'root', '');

PDO:

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

PHP的历史

PHP/FI

PHP 继承自一个老的工程,名叫 PHP/FI。PHP/FI 在 1995 年由 Rasmus Lerdorf 创建,最初只是一套简单的 Perl 脚本,用来跟踪访问他主页的人们的信息。他给这一套脚本取名为 “Personal Home Page Tools”。随着更多功能需求的增加,Rasmus 写了一个更大的 C 语言的实现,它可以访问数据库,可以让用户开发简单的动态 Web 程序。Rasmus 发布了 PHP/FI 的源代码,以便每个人都可以使用它,同时大家也可以修正它的 Bug 并且改进它的源代码。

PHP/FI,一个专为个人主页/表单提供解释程序的程序,已经包含了今天 PHP 的一些基本功能。它有着 Perl 样式的变量,自动解释表单变量,并可以嵌入 HTML。语法本身与 Perl 很相似,但是它很有限,很简单,还稍微有些不协调。

到1997年,PHP/FI 2.0,也就是它的 C 语言实现的第二版在全世界已经有几千个用户(估计)和大约 50,000 个域名安装,大约是 Internet 所有域名的 1%。但是那时只有几个人在为该工程撰写少量当代码,它仍然只是一个人的工程。

PHP/FI 2.0 在经历了数个 beta 版本的发布后于 1997 年 11 月 发布了官方正式版本。不久,PHP 3.0 的第一个 alpha 版本发布,PHP 从此走向了成功。

PHP 3

PHP 3.0 是类似于当今 PHP 语法结构的第一个版本。Andi Gutmans 和 Zeev Suraski 在为一所大学的项目中开发电子商务程序时发现 PHP/FI 2.0 功能明显不足,于是他们重写了代码。这就是 PHP 3.0。经过Andi,Rasmus 和 Zeev 一系列的努力,考虑到 PHP/FI 已存在的用户群,他们决定联合发布 PHP 3.0 作为 PHP/FI 2.0 的官方后继版本。而 PHP/FI 2.0 的进一步开发几乎终止了。

PHP 3.0 的一个最强大的功能是它的可扩展性。除了给最终用户提供数据库、协议和 API 的基础结构,它的可扩展性还吸引了大量的开发人员加入并提交新的模块。后来证实,这是 PHP 3.0 取得巨大成功的关键。PHP 3.0 中的其它关键功能包括面向对象的支持和更强大和协调的语法结构。

这个全新的语言伴随着一个新的名称发布。它从 PHP/FI 2.0 的名称中移去了暗含“本语言只限于个人使用”的部分。它被命名为简单的缩写 “PHP”。这是一种递归的缩写,它的全称是—— PHP: Hypertext Preprocessor

1998 年末,PHP 的安装人数几近 10,000,有大约 100,000 个网站报告他们使用了 PHP。在 PHP 3.0 的顶峰,Internet 上 10% 的 web 服务器上都安装了它。

约九个月的公开测试后,官方于 1998 年 6 月 正式发布 PHP 3.0。

PHP 4

1998 年的冬天,PHP 3.0 官方发布不久,Andi Gutmans 和 Zeev Suraski 开始重新编写 PHP 代码。设计目标是增强复杂程序运行时的性能和 PHP 自身代码的模块性。PHP 3.0 的新功能和广泛的第三方数据库、API的支持使得这样程序的编写成为可能,但是 PHP 3.0 没有高效处理如此复杂程序的能力。

新的被称为 “Zend Engine”(这是 Zeev 和 Andi 的缩写)的引擎,成功的实现了设计目标,并在 1999 年中期首次引入 PHP。基于该引擎并结合了更多新功能的 PHP 4.0,在 PHP 3.0 发布两年后,于 2000 年 5 月 发布了官方正式版本。除了更高的性能以外,PHP 4.0 还包含了其它一些关键功能,比如:支持更多的 web 服务器;HTTP Sessions 支持;输出缓冲;更安全的处理用户输入的方法;一些新的语言结构。

今天,已经有 10,000 名开发人员(估计)和几百万网站报告已安装了 PHP,占整个 Internet 域名的 20%。

PHP 的开发小组有很多优秀的开发人员,同时还有大量的优秀人才在进行 PHP 相关工程的开发工作,如 PEAR 和 PHP 文档的工程。

PHP 5

PHP 5 在长时间的开发及多个预发布版本后,于 2004 年 7 月 发布正式版本。它的核心是 Zend 引擎 2 代,引入了新的对象模型和大量新功能。

文件打开模式:r、r+、w……

模式 描述
r 只读。在文件的开头开始。
r+ 读/写。在文件的开头开始。
w 只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
w+ 读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
a 追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
a+ 读/追加。通过向文件末尾写内容,来保持文件内容。
x 只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
x+ 读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

参考:http://www.runoob.com/php/php-file.html 《PHP 文件处理》

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.