Tag: PHP的

什么是?在PHP 5.3中?

可能重复: 什么是PHP运算符“?”和“:”调用,它们是做什么的? 从http://twitto.org/ <?PHP require __DIR__.'/c.php'; if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; })) throw new Exception('Error'); $c(); ?> Twitto使用PHP 5.3以来的一些新function: DIR常数 ?:运算符 匿名function 在PHP5.3中,2号是做什么的? 另外,匿名函数是什么意思? 那不是有一段时间了?

我怎样才能ping一个服务器端口与PHP?

我想要一个PHP脚本,它允许你ping一个IP地址和一个端口号( ip:port )。 我发现了一个类似的脚本,但它只适用于网站,而不是ip:port 。 <?php function ping($host, $port, $timeout) { $tB = microtime(true); $fP = fSockOpen($host, $port, $errno, $errstr, $timeout); if (!$fP) { return "down"; } $tA = microtime(true); return round((($tA – $tB) * 1000), 0)." ms"; } //Echoing it will display the ping if the host is up, if not it'll say "down". […]

防止后退button显示POST确认警报

我有一个应用程序,提供一长串参数到一个网页,所以我必须使用POST而不是GET。 问题是,当页面显示,用户点击后退button,Firefox显示警告: 要显示此页面,Firefox必须发送信息,以便重复之前执行的任何操作(如search或订单确认)。 由于应用程序的构build方式使得返回是一个相当常见的操作,这对最终用户来说确实很烦人。 基本上,我想按照这个页面的方式来做: http://www.pikanya.net/testcache/ input内容,提交,然后点击返回button。 没有警告,它只是回来。 谷歌search,我发现这可能是Firefox 3中的一个错误,但我想不知怎么得到这种行为,即使他们“修复”。 我想这可能是可以与一些HTTP头,但究竟是什么?

在MySQL vs PHP中进行计算

语境: 我们有一个PHP / MySQL应用程序。 计算的一些部分直接在SQL中完成。 例如:在过去24小时内创build的所有用户都将通过SQL查询(NOW() – 1天)返回, 有一位开发者和我之间正在进行辩论,我认为我们应该: A.将所有计算/代码/逻辑保存在PHP中,并将MySQL视为一个“愚蠢”的信息存储库 他的观点: B.根据什么更容易/更快来做混搭。 http://www.onextrapixel.com/2010/06/23/mysql-has-functions-part-5-php-vs-mysql-performance/ 我正在考虑可维护性的观点。 他正在看速度(正如文章指出的那样,MySQL中的一些操作速度更快)。 @ bob-the-destroyer @tekretic @OMG小马@mu太矮了@Tudor Constantin @tandu @Harley 我同意(而且非常明显)高效的WHERE子句属于SQL级别。 然而,像这样的例子: 使用NOW()计算24个周期 – 在SQL中select1天,以select在过去24小时内创build的所有用户? 返回大写的所有用户的名字和姓氏? 连接一个string? (想法,乡亲?) 清除属于SQL域的示例: 具体的WHEREselect 嵌套的SQL语句 订购/分拣 selectDISTINCT项目 计数行/项目

如何获得按列分组的行数?

从PDO手册: PDOStatement :: rowCount()返回由相应PDOStatement对象执行的最后一个DELETE,INSERT或UPDATE语句影响的行数 。 如果由关联的PDOStatement执行的最后一条SQL语句是SELECT语句,则某些数据库可能会返回该语句返回的行数 。 但是,这种行为不能保证所有的数据库 ,不应该依赖便携式应用程序。 我最近才发现。 我只是改变了我的数据库抽象层不使用SELECT COUNT(1) …因为只是查询实际的行,然后计算结果会更有效率。 现在PDO不支持! 我不使用PDO的MySQL和Pg​​SQL,但我做的SQLite。 有没有一种方法(没有完全改变dbal回来)在PDO中计算这样的行? 在MySQL中,这将是这样的: $q = $db->query('SELECT a, b, c FROM tbl WHERE oele = 2 GROUP BY boele'); $rows = $q->num_rows; // and now use $q to get actual data 使用MySQLi和PgSQL驱动程序,这是可能的。 所有PDO都不是! PS。 我最初的解决scheme是扩展SQLResult->计数方法(我自己的),以取代SELECT … FROM通过SELECT COUNT(1) FROM ,只是返回该数字(非常低效,但只适用于SQLite PDO)。 这还不够好,因为在上面的查询中是一个GROUP […]

PHPmultidimensional arraysearch(按特定值查找关键字)

我有这个multidimensional array。 我需要search它,只返回匹配“slug”值的键。 我知道有关于searchmultidimensional array的其他线程,但我不是很了解适用于我的情况。 非常感谢您的帮助! 所以我需要一个像这样的function: myfunction($products,'breville-one-touch-tea-maker-BTM800XL'); // returns 1 这是数组: $products = array ( 1 => array( 'name' => 'The Breville One-Touch Tea Maker', 'slug' => 'breville-one-touch-tea-maker-BTM800XL', 'shortname' => 'The One-Touch Tea Maker', 'listprice' => '299.99', 'price' => '249.99', 'rating' => '9.5', 'reviews' => '81', 'buyurl' => 'http://www.amazon.com/The-Breville-One-Touch-Tea-Maker/dp/B003LNOPSG', 'videoref1' => 'xNb-FOTJY1c', 'videoref2' => […]

为什么PHP中的函数和方法不区分大小写?

PHP中的函数和方法不区分大小写,如以下示例所示。 function ag() { echo '2'; } Ag(); class test { function clMe() { echo 'hi'; } } $instance = new test; $instance->clme(); 但是variables不是这种情况。 基本原理是什么?

如何从string中删除扩展名(只有真正的扩展名!)

我正在寻找一个小函数,允许我从文件名中删除扩展名。 我发现了很多使用googlesearch的例子,但是它们不好,因为它们只是用“。”来删除部分string。 。 他们使用点作为限制器,只是切割string。 看看这些脚本, $from = preg_replace('/\.[^.]+$/','',$from); 要么 $from=substr($from, 0, (strlen ($from)) – (strlen (strrchr($filename,'.')))); 当我们像这样添加string时: 这是somestring的例子 它只会返回“这个”… 扩展名可以有3个或4个字符,所以我们必须检查点是否在4或5的位置,然后删除它。 怎么办?

从string中获得前100个字符,尊重整个单词

这里我曾经问过类似的问题,但是我需要知道这个小小的调整是否可行。 我想缩短一个string为100个字符,并使用$small = substr($big, 0, 100); 这样做。 然而,这只是前100个字符,并不在乎是否分裂了一个字。 有什么办法可以使string的前100个字符,但要确保你不要打破一个字? 例: $big = "This is a sentence that has more than 100 characters in it, and I want to return a string of only full words that is no more than 100 characters!" $small = some_function($big); $small = "This is a sentence that has more than […]

MySQL – 忽略插入错误:重复的条目

我正在使用PHP。 请问在DB中插入新logging的方法是什么? 我在一批中插入大量的logging,我只是想要插入新的logging,我不希望任何重复条目的错误。 是否只有这样的方法才能首先进行SELECT并查看INSERT之前的条目是否已经存在?并且只有当SELECT返回没有logging时才允许INSERT? 我希望不是。 我想以某种方式告诉MySQL忽略这些插入没有任何错误。 谢谢