Tag: PHP的

Laravel迁移:即使指定,唯一的关键是太长

我正在尝试在Laravel中迁移用户表。 当我运行我的迁移时,我得到这个错误: [Illuminate \ Database \ QueryException] SQLSTATE [42000]:语法错误或访问冲突:1071指定的键过长; 最大密钥长度是767字节(SQL:alter table users添加唯一的users_email_uniq( email )) 我的移民如下: Schema::create('users', function(Blueprint $table) { $table->increments('id'); $table->string('name', 32); $table->string('username', 32); $table->string('email', 320); $table->string('password', 64); $table->string('role', 32); $table->string('confirmation_code'); $table->boolean('confirmed')->default(true); $table->timestamps(); $table->unique('email', 'users_email_uniq'); }); 一些谷歌search后,我遇到了这个错误报告 ,泰勒说,你可以指定索引键作为unique() ,我已经完成的第二个参数。 它仍然给出了错误。 这里发生了什么?

GOTO在PHP中是邪恶的吗?

我最近发现PHP 5.3支持新的语言结构叫做GOTO 。 大家都知道它做了什么。 但是,这不完全是传统的GOTO ,它只是一个跳转标签。 我很有兴趣知道这个GOTO是否是邪恶的,并暗示着糟糕的代码?

本地PHP支持Web套接字可用吗?

寻找Hello WorldtypesWeb套接字实现的例子: 这里是从php.net 创build引用的套接字 ,但是这看起来比Web套接字更低。 我想使用这个网页套接字,如caniuse.com所示,现在已经在所有新的主stream浏览器中实现了。 谷歌search发现了这个Nets.TutsPlus网站 ,我可以在其中使用JavaScript示例代码…但我需要知道如何在PHP中实现服务器端,而不是Java,Ruby或Node.js中的示例。 PHP套接字创build相关? PHP本身支持Web套接字吗? 我想只是在正确的方向PHP实施的一个点将有所帮助。 其实本教程有一个链接到phpwebsockets的断开…这是一个图书馆应该使用? Websockets.org有一个testing应用程序,但没有提到PHP。

将preg_replace()e修饰符replace为preg_replace_callback

我用正则expression式很糟糕。 我试图取代这个: public static function camelize($word) { return preg_replace('/(^|_)([az])/e', 'strtoupper("\\2")', $word); } 带有匿名函数的preg_replace_callback。 我不明白“2”在做什么。 或者就此而言,preg_replace_callback是如何工作的。 什么是实现这个正确的代码?

PHP数组到CSV

我试图将一个产品数组转换成一个CSV文件,但似乎没有计划。 CSV文件是一个很长的行,这是我的代码: for($i=0;$i<count($prods);$i++) { $sql = "SELECT * FROM products WHERE id = '".$prods[$i]."'"; $result = $mysqli->query($sql); $info = $result->fetch_array(); } $header = ''; for($i=0;$i<count($info);$i++) { $row = $info[$i]; $line = ''; for($b=0;$b<count($row);$b++) { $value = $row[$b]; if ( ( !isset( $value ) ) || ( $value == "" ) ) { $value = "\t"; […]

PHP中的命令行密码提示

我正在编写一个命令行工具来帮助我的networking应用程序。 它需要密码才能连接到服务。 我希望脚本显示密码提示,所以我不必将其作为命令行parameter passing。 这很简单,但是我不希望在input密码的时候回显密码。 我怎样才能做到这一点与PHP? 在纯PHP(没有system('stty') )中做的奖金点,并用*replace字符。 编辑: 该脚本将运行在类似Unix的系统(Linux或Mac)上。 脚本是用PHP编写的,而且很可能会保持这样的状态。 而且,为了logging,这样做的方式是: echo "Password: "; system('stty -echo'); $password = trim(fgets(STDIN)); system('stty echo'); // add a new line since the users CR didn't echo echo "\n"; 我宁愿没有system()在那里调用。

MVC教程,不依赖于框架?

我想学习MVC的“架构模式”,但我不想像Rails或Django那样跳入框架。 我想先理解这个概念,然后在我熟悉的环境中编写一些简单的代码,恰好是PHP / HTML / CSS / MySQL。 我不一定需要基于PHP的教程,因为我理解很多不同的语言。 我不想安装任何框架或API或库。 我只想学习如何在MVC中思考并将其应用于我的项目。 有什么build议么?

使用退货时是否需要切换开关?

我想知道在使用“return”时是否需要在“switch”function中使用“break”。 function test($string) { switch($string) { case 'test1': return 'Test 1: ' . $string; case 'test2': return 'Test 2: ' . $string; } } 我已经尝试过了,没有“rest”就可以正常工作。 但是我需要知道这是否安全。 谢谢。

检查值是否设置为null

我需要检查值是否被定义为任何东西,包括null。 isset将null值视为未定义,并返回false 。 以下面的例子为例: $foo = null; if(isset($foo)) // returns false if(isset($bar)) // returns false if(isset($foo) || is_null($foo)) // returns true if(isset($bar) || is_null($bar)) // returns true, raises a notice 请注意, $bar是未定义的。 我需要find满足以下条件: if(something($bar)) // returns false; if(something($foo)) // returns true; 有任何想法吗?

UTC观察夏令时?

我想写一个脚本,我想将任何时区转换为UTC和反向。 但是从某些地方我知道在将任何时区转换为UTC ,不pipe是否使用DST,都会给出相同的UTC时间。 例如:如果我尝试转换这一个: $mytime = '2011-03-31 05:06:00.000'; $myzone = 'America/New_York'; 到UTC与DST和没有DST,我会得到.. (New_York->UTC DST=Yes)2011-03-31 09:06:00 (New_York->UTC DST=No)2011-03-31 09:06:00 ………. 这是正确的吗?如果是的话,为什么? 请有人给我你的答案。