和 有何不同?

在下面的代码中,我不知道这些字符在功能上有何不同:\r \t \n。 这是一些示例代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Sorting words in a block of text by length</title> <link rel="stylesheet" type="text/css" href="common.css" /> </head> <body> <h1>Sorting words in a block of text by length</h1> <?php $myText = <<<END_TEXT But think not that this famous town has only harpooneers, cannibals, and bumpkins to show her visitors. Not at all. Still New Bedford is a queer place....

d+在正则表达式中意味着什么?

我是正则表达式的新手,并在以下\ d+中来了。我不完全知道这意味着什么,请指出正确的方向。 答案 \d是数字(范围0-9中的字符),并且+意味着1次或更多次。所以,\d+是1个或更多数字。 这与正则表达式一样简单。您应该尝试更多地阅读正则表达式。Google有很多结果正则表达教程, 例如。或者您可以尝试使用免费的工具正则教练这将使您输入正则表达式和示例文本,然后指示(如果有的话)与正则匹配。 来自: stackoverflow.com

__ -construct使用的功能是什么?

我一直在注意__construct上课很多。我做了一些阅读和浏览网络,但找不到我能理解的解释。我只是从OOP开始。 我想知道是否有人可以一般地了解它是什么,然后是一个简单的例子,说明它如何与PHP一起使用? 答案 __construct是在PHP5中引入的,它是定义您的构造函数的正确方法(在PHP4中,您将类的名称用于构造函数)。您不需要在课堂中定义构造函数,但是如果您想传递对象构造上的任何参数,则需要一个。 一个例子可能会这样: class Database { protected $userName; protected $password; protected $dbName; public function __construct ( $UserName, $Password, $DbName ) { $this->userName = $UserName; $this->password = $Password; $this->dbName = $DbName; } } // and you would use this as: $db = new Database ( 'user_name', 'password', 'database_name' ); 在PHP手册中解释了其他所有内容:点击这里 来自: stackoverflow.com

__FILE__ 是什么意思?

我有来自 Codeigniter 的以下代码index.php 我的理解是, 如果/中的字符串位置$system_folder(在本例中 CIcore_1_7_1)是false, 而如果realpath函数存在 AND (?) 不存在false,$system_folder被分配给(?)/$system_folder。$system_folder被分配给$system_folder与更换\\和/。 Q1. Q2。 @realpath(dirname(__FILE__)) Q3。 Q4。 str_replace("\\", "/", $system_folder) $system_folder = "CIcore_1_7_1"; /* |--------------------------------------------------------------- | SET THE SERVER PATH |--------------------------------------------------------------- | | Let's attempt to determine the full-server path to the "system" | folder in order to reduce the possibility of path problems. | Note: We only attempt this if the user hasn't specified a | full server path. | */ if (strpos($system_folder, '/') === FALSE) { if (function_exists('realpath') AND @realpath(dirname(__FILE__)) !...

_GET 中 URL 参数的最大大小

我正在使用 REST 访问 PHP 服务器:所有数据都作为 URL 参数在 GET 请求中传递。 假设我已经正确诊断了问题,有没有办法改变这个最大尺寸? 答案 好吧,似乎某些版本的 PHP 对 GET 参数的长度有限制: 请注意,安装了 suhosin 补丁的 PHP 设置对于获取参数的默认限制为 512 个字符。 要使用 suhosin 添加对长参数的支持,请添加suhosin.get.max_value_length = <limit>在php.ini 来源:http://www.php.net/manual/en/reserved.variables.get.php 来自: stackoverflow.com

?:PHP中的操作员('猫王运营商')

我今天在一些 PHP 代码中看到了这一点: $items = $items ?: $this->_handle->result('next', $this->_result, $this); 我不熟悉?:操作员在这里使用。它看起来像是三元运算符,但是要评估谓词是否为真的表达式。这是什么意思? 答案 如果左操作数是,则计算左操作数真相和正确的操作数。 在伪代码中 foo = bar ?: baz; 大致解决 foo = bar ? bar : baz; 或者 if (bar) { foo = bar; } else { foo = baz; } 与众不同bar仅评估一次。 您也可以使用此操作来做一个"自我检查"foo如您发布的代码示例所示: foo = foo ?: bar; 这将分配bar到foo如果foo是无效的,否则它将离开foo不变。 还有一些例子: <?php var_dump(5 ?: 0); // 5 var_dump(false ?: 0); // 0 var_dump(null ?: 'foo'); // 'foo' var_dump(true ?: 123); // true var_dump('rock' ?...

.htaccess 301单页重定向

重新设计网站后,我有几页需要重定向。一切都停留在同一领域,只有几件事已经重组和/或更名。它们的形式是: /contact.php 就是现在: /contact-us.php 使用.htaccess文件,我添加了此行,这是我发现的最多推荐的一行: RedirectMatch 301 /contact.php /contact-us.php 这大多是可以的 - 它可以完成工作 - 问题是,它也重定向: /team1/contact.php /不存在的文件夹/contact.php 是否有一种方法可以指定我只想将contact.php重定向到根中? 答案 RedirectMatch使用与URL路径相匹配的正则表达式。和您的正则表达/contact.php只是意味着任何包含的URL路径/contact.php 但不只是确切的任何URL路径/contact.php 。因此,请使用锚来进行字符串的开始和结尾(^和$): RedirectMatch 301 ^/contact\.php$ /contact-us.php 来自: stackoverflow.com

.htaccess 从站点根目录重定向到公共文件夹,在 URL 中隐藏“公共”?

Bellow是我的网站目录结构: htdocs/ My-Project/ public/ index.php css/ img/ js/ src/ config.php templates/ library/ 我不希望直接访问该文件中的任何文件src目录。src包含我的模板和后端逻辑脚本。 我想设置我的.htaccess因此,当用户访问我的网站时(根文件夹My-Project),他们被重定向到My-Project/public/index.php。我希望URL看起来像My-Project.com在索引页面上。 有帮助吗?我犹豫不决地修改了我的.htaccess文件,因为我在这里和网上看到了许多相互冲突的建议,以实现这一目的。 答案 将此代码放在/My-Project/.htaccess: RewriteEngine On RewriteBase /My-Project/ RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC] RewriteRule ^ %1 [L,NE,R=302] RewriteRule ^((?!public/).*)$ public/$1 [L,NC] 来自: stackoverflow.com

.htaccess 文件允许访问图像文件夹以查看图片?

我在以下 URL 中有一个图像文件夹。 www.mysite.com/uploads/ 在不同的页面上: www.mysite.com/search.php/ 我正在尝试使用正确的标签链接访问其中的图像,但是我得到: Forbidden You don't have permission to access /uploads/ on this server. 所以我开始涉足.htaccess文件,我不知道我在做什么,我尝试查看一些文档,但没有运气,我什至从另一个问题中举了一个例子..这是我的方法.htaccess文件看起来是atm: <FilesMatch "\.(gif|jpe?g|png)$"> Order allow,deny Allow from all </FilesMatch> <Directory /uploads> # All access controls and authentication are disabled # in this directory Satisfy Any Allow from all </Directory> 关于如何让它允许访问该文件夹有什么想法吗? 答案 <Directory /uploads> Options +Indexes </Directory> 来自: stackoverflow.com

.htaccess 问题:未指定输入文件

有人可以帮我弄这个吗? 我有Apache 2.2.8 + PHP 5.2.6安装在我的机器上并且.htaccess下面的代码工作正常,没有错误。 RewriteEngine on RewriteCond $1 !^(index\.php|css|gfx|js|swf|robots\.txt|favicon\.ico) RewriteRule ^(.*)$ /index.php/$1 [L] 我的托管提供商服务器上的相同代码给出了 404 错误代码和输出only: No input file specified.index.php 就在那里。 我上线了Windows XP 64-bit,他们正在运行一些Linux和PHP在CGI/FastCGI模式。 附言。CodeIgniter使用友好的 URL。 更新1: mod_rewrite已安装并开启。 我注意到如果我改变RewriteRule到/index.php?$1(问号而不是正斜杠)它进入无限循环。CodeIgniter(必需)不会以这种方式工作。 当我直接请求index.php时,主页也可以工作:example.com/index.php 我开始认为 apache 可能会认为,一旦添加了尾部斜杠,它就不再是文件,而是文件夹了。 更新2: 我错了。 Apache 正确处理这些 URL。 要求http://example.com/index.php/start/(主页)或任何其他有效地址均有效。 看来Apache只是由于某种原因不转发查询。 更新3: 只是为了清楚我想要实现的目标。 我想像这样重写地址: http://www.example.com/something/=>http://www.example.com/index.php/something/ http://www.example.com/something/else/=>http://www.example.com/index.php/something/else/ 答案 我也曾为此绞尽脑汁。 问题的关键不是 RewriteBase。 DirectoryIndex index.php RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php|robots\.txt) RewriteRule ^(.*)$ index.php?/$1 [L] 来自: stackoverflow....

.htaccess 重写 GET 变量

我有一个index.php,它处理所有路由index.php?page=controller(简化)只是为了将逻辑与视图分开。 Options +FollowSymlinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([\w\d~%.:_\-]+)$ index.php?page=$1 [NC] 基本上:http://localhost/index.php?page=controller到 http://localhost/控制器/ 谁能帮我添加重写 http://localhost/controller/param/value/param/value(等等) 那将是: http://localhost/controller/?param=值 我无法让它与重写规则一起使用。 控制器可能如下所示: <?php if (isset($_GET['action'])) { if ($_GET['action'] == 'delete') { do_Delete_stuff_here(); } } ?> 并且: <?php if (isset($_GET['action']) && isset($_GET['x'])) { if ($_GET['action'] == 'delete') { do_Delete_stuff_here(); } } ?> 答案 基本上人们想说的是,你可以像这样制定重写规则: RewriteRule ^(.*)$ index.php?params=$1 [NC, QSA] 这将使您的实际 php 文件如下所示: index.php?params=param/value/param/value 你的实际 URL 会像这样: http://url.com/params/param/value/param/value 在你的 PHP 文件中,你可以通过分解来访问你的参数,如下所示:...

.htaccess重写以保存获取URL参数

在HTACCESS URL重写之后,我遇到了使URL参数工作的问题。 我的htaccess重写如下: RewriteEngine on RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2 意思是: domain.com/index.php?lang=en&page=product显示为domain.com/en/product 由于某种原因,当我添加一个?model=AB123&color=something在我的URL结束时,我无法使用PHP中检索这些参数$_GET['model']和$_GET['color']即使它们存在于显示的URL中。 为什么变量不通过? 答案 您需要附加[QSA](查询字符串附加)标签。尝试 RewriteEngine on RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2 [QSA] 看http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html 来自: stackoverflow.com

我正在开发一个简单的PHP上传脚本,用户只能上传zip和rar文件。 我应该使用哪些哑剧类型检查$_FILES[x][type]?(请完整列表) 答案 Freedompeace,Kiyarash和Sam Vloeberghs的答案: .rar application/x-rar-compressed, application/octet-stream .zip application/zip, application/octet-stream, application/x-zip-compressed, multipart/x-zip 我也会对文件名进行检查。这是您可以检查文件是RAR还是ZIP文件的方法。我通过创建快速命令行应用程序对其进行了测试。 <?php if (isRarOrZip($argv[1])) { echo 'It is probably a RAR or ZIP file.'; } else { echo 'It is probably not a RAR or ZIP file.'; } function isRarOrZip($file) { // get the first 7 bytes $bytes = file_get_contents($file, FALSE, NULL, 0, 7); $ext = strtolower(substr($file, - 4)); // RAR magic number: Rar!\x1A\x07\x00 // http://en.wikipedia.org/wiki/RAR if ($ext == '....

'和'vs'&&'作为操作员

我有一个代码库,开发人员决定使用AND和OR代替&&和||。 我知道运营商的优先级有差异(&&前面and),但是对于给定的框架(Prestashop确切地说)这显然不是原因。 您正在使用哪个版本?是and比可读性更可读&&?还是没有区别? 答案 如果您使用AND和OR,最终您会被这样的事情绊倒: $this_one = true; $that = false; $truthiness = $this_one and $that; 想猜猜什么$truthiness等于? 如果你说false… bzzzt,对不起,错了! $truthiness以上具有价值true。为什么?=有一个更高的优先级比and。添加括号以显示隐性顺序更清楚: ($truthiness = $this_one) and $that 如果您使用过&&代替and在第一个代码示例中,它将按预期工作,并且false。 如下注释中所述,这也有助于获得正确的价值,因为括号的优先级高于=: $truthiness = ($this_one and $that) 来自: stackoverflow.com

'警告:mysql_fetch_array()期望参数1是资源,在...中给出布尔值,但我的查询是正确的

好的,所以我知道关于"为什么我用 mysql_fetch_array 收到此警告…“的问题已被问过多次,我的问题是所有接受的答案都表明服务器发出此警告的原因是因为查询本身 这是以下代码: $dbhost = "host"; $dbuser = "user"; $dbpass = "pass"; $dbname= "db"; $conn = mysql_connect($dbhost, $dbuser, $dbpass); mysql_select_db($dbname) or die ('<META HTTP-EQUIV="Refresh" CONTENT="0;URL=Failed.php?dberror=1">'); $token = mysql_escape_string($_GET['token']); $query = "SELECT * FROM newuser WHERE token='$token'"; $result = mysql_query($query) or die(mysql_error()); while($row=mysql_fetch_array($result)) { do stuff... } " while"语句中的所有内容都很好地执行 - 它可以对DB进行一些更改,我可以验证的情况正在发生。更重要的是,查询永远不会吐出任何错误细节。我尝试过测试$ result === false并要求提供错误信息的情况,但它也不会返回任何内容。据我所知,查询字符串很好,并且没有失败。 我在这里做错了什么?除了SQL语句外,PHP不喜欢我的while参数的其他原因是否不喜欢我的while参数(这再次,我坚信这还不错)? 另外,我知道我应该使用mysqli/pdo ….我打算在不久的将来切换到它,但是我只是试图做这项工作,我不知道为什么会赢了’t。在这一点上,这更多是个人的事情… 感谢您的帮助,让我知道您是否需要任何其他信息。(PHP版本5.3) 这是查询字符串($ query)的回声: SELECT * FROM newuser WHERE token='6e194f2db1223015f404e92d35265a1b' 这是查询结果的var_dump($结果):类型的资源(3)(mysql结果) 答案 $query = "SELECT * FROM newuser WHERE token='$token'"; $result = mysql_query($query) or die(mysql_error()); while($row=mysql_fetch_array($result)) { do stuff....