标签为 "Php" 的存档

亲爱的PHP,我要离开你了,因为,我对NodeJs更有感

亲爱的PHP,

我知道这封信不会给你惊喜。我们在一起已经有一些时日了,但是,从今天开始,我们将分道扬镳。

写下这些并不容易。你和我共度了很长时间。很难相信,在10年前你就欢快的接受我,让我进入你的怀抱。你年轻,sexy,和我的前任Perl比起来,你犹如一阵清风。我们在一起没过多久,你开始给我带来效益,过去的十年,我的每一份工作都是以你为基础的。 我们拥有很多美好的时光。记不记我们上了CNN头版【1】,14天里就获得$500的进账?这些年,每一次动态创建PDF,我的脸上都会绽放出笑容。
但是我们仍然有艰难的日子。我希望在我的余生里,再也不要听到这个词“register globals”(注册全局变量)。你也知道,直到现在,我还留着和你一起创建SOAP客户端的伤疤。我们谁也不能保证可靠(不知道PHP V6 发布后,以及支持UTF-8后会是怎么样的情形?)。不论如何,我们此前总是能解决分歧。
Read more…

如何让 mysqldump/mysql 导入数据时忽略错误继续执行

今天从excel导入数据到服务器的mysql,在本地把excel的内容拷贝到了Editplus,然后用正则把它变成了insert into 语句,在用mysql -uroot -p123456 databasename < filename.sql 导入的时候,被告知 ERROR 1062 (23000) at line 258: Duplicate entry (‘xx’,xx,xx,x,xxx) for key 2,违背了Unique Key,但是这种情况应该是正常的,重复键不插入,继续执行就好啦,可是它却报错并停止执行了。。

Read more…

[Server.userException] No such operation ‘xxx’ SoapClient->__call(xxx,Array)

使用SOAP调用webservice时,出现错误:

Fatal error: Uncaught SoapFault exception: [Server.userException] No such operation 'xxx' in D:xampphtdocsxxxxxx.php:19 Stack trace: #0 [internal function]: SoapClient->__call('xxx', Array) 

经查找排除,发现是参数错误。修改参数数据即可。
Read more…

mysql-select into-not in()-给C#转型来的PHP程序员的一点小提示

搞C#、.NET的,大都用的mssql数据库,但是在mysql里边,有一些mssql的用法是不适用的,以下是我今天刚经历的两个例子,共大家参考。

1、SELECT INTO TABLE

在mssql中, 有如下用法,可以直接把查询出的数据放到一个新表中,这条语句可以很好的用来备份表。

select * into table1_bak from table1

2、not in()
在mssql中, not in () 的括弧内可以直接放置sql语句,也可以很方便的实现特殊查询。

select * from bill_log where bill_id not in(select bill_id from bill_log07)

这条语句在mysql中就会报错。
Read more…

PHP 数组排序 sort、asort 及 ksort 系列函数

•sort() 函数用于对数组单元从低到高进行排序。
•rsort() 函数用于对数组单元从高到低进行排序。
•asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
•arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
•ksort() 函数用于对数组单元按照键名从低到高进行排序。
•krsort() 函数用于对数组单元按照键名从高到低进行排序。
Read more…

PHP 数组 判断是否存在某个键值 array_key_exists()

PHP 检测数组是否存在某个键值 判断数组索引是否存在 array_key_exists();

bool array_key_exists ( mixed key, array search )

<?php
/*

array_key_exists() 在给定的 key 存在于数组中时返回 TRUE。key 可以是任何能作为数组索引的值。

*/

$search_array = array("first" => 1, "second" => 4);
if (array_key_exists("first", $search_array)) {
   echo "The 'first' element is in the array";
}
?>

Read more…

imagettftext() [function.imagettftext]: Could not find/open font in 字体乱码不正常

在使用imagettftext()函数生成包含汉字的图片时,在本地测试正常,上传到空间后运行却报如下错误

imagettftext() [function.imagettftext]: Could not find/open font in……

查看官方手册:
When using versions of the GD library lower than 2.0.18, a space character, rather than a semicolon, was used as the ‘path separator’ for different font files. Unintentional use of this feature will result in the warning message: Warning: Could not find/open font. For these affected versions, the only solution is moving the font to a path which does not contain spaces.

说是因为如果GD库的版本过低的话,字体文件的路径中不能包含有空格。

但是我想我空间的GD库不能那么低啊,而且字体文件路径中也没有空格,然后突然想到,linux/unix主机下文件名是区分大小写的,空间内字体文件的名称是SIMFANG.TTF,而我在使用它的时候用的是小写,所以会找不到字体文件,报此错误。
还曾经遇到一个错误是字体乱码的问题,更换了一个字体就好啦。。

Read more…

Mysql 命令行导入 乱码 解决方法

mysql命令行从文件导入时发生乱码,是因为编码问题,即使改变sql文件的编码,重新导入时,仍旧是乱码,针对此问题,我们在导入时,在命令行中指定编码即可。

如下:

mysql -uroot -p123 management <D:dump.sql -f --default-character-set=utf8

PHP开发人员常犯的几个MysqL错误

对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一员。

对于很多新手们来说,使用PHP可以在短短几个小时之内轻松地写出具有特定功能的代码。但是,构建一个稳定可靠的数据库却需要花上一些时日和相关技能。下面列举了我曾经犯过的最严重的10个MySQL相关的错误(有些同样也反映在其他语言/数据库的使用上)。

1、使用MyISAM而不是InnoDB

MySQL有很多数据库引擎,但是你最可能碰到的就是MyISAM和InnoDB。

MySQL 默认使用的是MyISAM。但是,很多情况下这都是一个很糟糕的选择,除非你在创建一个非常简单抑或实验性的数据库。外键约束或者事务处理对于数据完整性 是非常重要的,但MyISAM都不支持这些。另外,当有一条记录在插入或者更新时,整个数据表都被锁定了,当使用量增加的时候这会产生非常差的运行效率。

结论很简单:使用InnoDB。

Read more…

如何用php实现发送带附件的邮件

首先要清楚,要用php实现发送带附件的邮件没有什么简单的办法。你要很好的理解PHP或其它的服务器端的脚本语言,如果你理解了,也就算是很简单了。当然你还要一个真正支持PHP的网站的账号。这个是最基础的前提,然后在你读完了本文章后就可以用PHP发送带附件的电子邮件了。

1. 附件是如何工作的

如果你曾经在PHP的手册中搜索过“附件”函数,那么结果可能是什么都没有(至少在我写本文的时间还没有)。后来你就要花很多时间来了解这方面的知识。

你也许会想当你给某个人发送一封带附件的电子邮件时,附件是和邮件一起放到收件人的信箱里的(比如,如果你给他/她发了一个PNG的图片文件,他/她的信箱里会包含一个txt文件(电子邮件)和一个.png文件(附件)。但这不是它的工作原理。当你加入一个附件时,你的邮件程序把附件转换成纯文本文件,并在你写的内容(实际的电子邮件)后面插入这个文本块。这个,当你把所有的东西发出来后,收件人的信箱里只有一个纯文本文件——一个同时包含附件和实际电子邮件内容的文件。
Read more…