Questions tagged «php»

PHP是一种广泛使用的高级动态,面向对象和解释性脚本语言,主要用于服务器端Web开发。用于有关PHP语言的问题。

10
如何解决cURL错误(7):无法连接到主机?
我使用cUrl(php)将项目代码以xml格式发送到Web服务。我在localhost中得到了正确的响应,但是在服务器运行时它显示 cURL错误(7):无法连接到主机 这是我的代码: function xml_post($post_xml, $url) { $user_agent = $_SERVER['HTTP_USER_AGENT']; $ch = curl_init(); // initialize curl handle curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, 50); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_xml); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); // curl_setopt($ch, CURLOPT_PORT, $port); $data = curl_exec($ch); $curl_errno = curl_errno($ch); …
70 php  xml  curl 

11
模拟403错误页面
我知道您可以发送一个标头,告诉浏览器禁止此页面,例如: header('HTTP/1.0 403 Forbidden'); 但是,如何显示在服务器上为此类错误创建的自定义错误页面呢? 默认情况下,仅发送标题会显示白页,但我记得有一阵子回读,您可以使用客户错误页面。有人知道吗

21
netbeans显示“正在等待连接(netbeans-xdebug)”
需要帮助配置xdebug,以便从IDE netbeans调试项目。 这些是我组件的功能: XAMPP 1.8.2 的PHP:5.4.16 netbeans:7.3.1 Apache:2.4.4(Win32) 这是我的php.ini文件的最后一部分: [XDebug] zend_extension = "C:\xampp\php\ext\php_xdebug-2.2.3-5.4-vc9-nts.dll" ;xdebug.profiler_append = 0 ;xdebug.profiler_enable = 1 ;xdebug.profiler_enable_trigger = 0 xdebug.profiler_output_dir = "C:\xampp\tmp" ;xdebug.profiler_output_name = "cachegrind.out.%t-%s" xdebug.remote_enable = 1 xdebug.remote_handler = "dbgp" xdebug.remote_host = "127.0.0.1" ;xdebug.trace_output_dir = "C:\xampp\tmp" 当我运行phpinfo()时,没有安装xdebug,并且当我从netbeans调试项目时,它显示“正在等待连接(netbeans-xdebug)”。 有人可以帮助我进行配置吗?将不胜感激。 提前致谢。

10
如何在PHP中重命名数组键?
当我在名为$ tags的变量(多维数组)上执行var_dump时,会得到以下信息: 数组 ( [0] =>数组 ( [名称] =>制表符 [url] =>制表符 ) [1] =>数组 ( [名称] =>虎斑猫 [url] =>虎斑搭i ) [2] =>数组 ( [名称] =>表格 [url] =>表格 ) [3] =>数组 ( [名称] =>小报 [url] =>小报 ) [4] =>数组 ( [名称] =>塔可钟 [url] =>塔可钟 ) [5] =>数组 ( [名称] =>炸玉米饼 [url] …
70 php 

7
获取PHP stdObject中的第一个元素
我有一个看起来像这样的对象(存储为$ videos) object(stdClass)#19 (3) { [0]=> object(stdClass)#20 (22) { ["id"]=> string(1) "123" etc... 我想获取第一个元素的ID,而不必循环访问它。 如果它是一个数组,我会这样做: $videos[0]['id'] 它曾经这样工作: $videos[0]->id 但是现在我在上面显示的行上收到一个错误“无法将stdClass类型的对象用作数组...”。可能是由于PHP升级。 那么,如何不循环就获得第一个ID?可能吗? 谢谢!

9
在PHP(> = 5.0)中,通过引用传递速度更快吗?
在PHP中,可以通过在函数声明中的参数前面加上“&”号来通过引用传递函数参数,如下所示: function foo(&$bar) { // ... } 现在,我知道这并不是为了提高性能而设计的,而是允许函数更改通常不在其范围内的变量。 取而代之的是,PHP似乎使用写时复制来避免在对象被更改之前复制对象(也许还有数组)。因此,对于不更改其参数的函数,其效果应与您通过引用传递它们的效果相同。 但是,我想知道写时复制逻辑是否可能在传递引用时短路,并且这是否会对性能产生影响。 ETA:可以肯定的是,我认为它并不快,而且我很清楚这不是引用的目的。所以我想我自己的猜测很好,我是在寻找一个真正知道内幕下肯定正在发生什么的人的答案。在PHP开发的五年中,我总是发现很难通过阅读源代码来获取有关PHP内部的高质量信息。

7
PHP隐喻但将每个元素括在引号中
假设我有一个数组: $elements = array('foo', 'bar', 'tar', 'dar'); 然后我想建立一个 DELETE INSQL查询: $SQL = "DELETE FROM elements WHERE id IN ('" . implode(',', $elements) . "')"; 问题是在elements数组中的id并没有单独引用。IE查询看起来像: $SQL = "DELETE FROM elements WHERE id IN ('foo,bar,tar,dar'); 解决此问题的最好,最优雅的方法是什么?
70 php  implode 

12
如果为null,则在PHP的一行中使用其他变量
PHP中是否有类似于JavaScript的东西: alert(test || 'Hello'); 因此,当test未定义或为null时,我们将看到Hello,否则-我们将看到test的值。 我在PHP中尝试了类似的语法,但它似乎无法正常工作。此外,我也不知道如何使用Google搜索这个问题。 谢谢 编辑 我可能应该补充一点,我想在数组中使用它: $arr = array($one || 'one?', $two || 'two?'); //This is wrong 但是确实,我可以使用内联'?:'如果在这里也声明,谢谢。 $arr = array(is_null($one) ? "one?" : $one, is_null($two) ? "two ?" : $two); //OK
70 php 

4
PHP CURL和HTTPS
我发现此功能确实出色(IMHO):http : //nadeausoftware.com/articles/2007/06/php_tip_how_get_web_page_using_curl /** * Get a web file (HTML, XHTML, XML, image, etc.) from a URL. Return an * array containing the HTTP server response header fields and content. */ function get_web_page( $url ) { $options = array( CURLOPT_RETURNTRANSFER => true, // return web page CURLOPT_HEADER => false, // …
70 php  curl  https 


9
防止会话劫持
如何防止多个客户端使用相同的会话ID?我之所以这样询问,是因为我想增加一层安全保护,以防止网站上的会话劫持。如果黑客以某种方式找出另一个用户的会话ID并使用该SID发出请求,那么我如何检测到服务器上有不同的客户端共享一个SID,然后拒绝劫持尝试? 编辑 经过深思熟虑后,我接受了Gumbo的回答,因为我意识到由于无状态HTTP协议的限制,我所要求的是不可能的。我忘了HTTP的最基本原理是什么,现在我想到这个问题似乎有点琐碎。 让我详细说明一下: 用户A登录example.com后,为他提供了一些随机会话ID,为简单起见,将其设为“ abc123”。该会话ID在客户端存储为cookie,并通过服务器端会话进行验证,以确保登录的用户在从一个网页转到另一个网页时仍保持登录状态。如果HTTP不是无状态的,则该cookie当然不需要存在。因此,如果用户B窃取用户A的SID,并在其计算机上创建一个值为'abc123'的cookie,则他本可以成功劫持用户A的会话,但是服务器根本无法合法地识别出用户B的会话。该请求与用户A的请求有任何不同,因此服务器没有理由拒绝任何请求。即使我们要列出服务器上已经处于活动状态的会话,并尝试查看某人是否正在访问已处于活动状态的会话,我们如何才能确定是另一个用户在非法访问该会话而不是同一用户谁已经使用会话ID登录,但只是尝试使用它发出另一个请求(即导航到另一个网页)。我们不能。检查用户代理?可以被欺骗-但是作为深度防御措施还是不错的。IP地址?可以出于正当理由进行更改-但我建议不要检查IP地址的前两个八位位组,而不是根本不检查IP地址,因为即使是出于完全正当理由而不断更改IP的数据计划网络用户通常只具有其IP更改的最后两个八位位组。 最后,无状态HTTP谴责我们永远无法完全保护我们的网站免受会话劫持,但是良好的做法(如Gumbo提供的做法)将足以防止大多数会话攻击。因此,尝试通过拒绝同一SID的多个请求来保护会话免遭劫持,这简直是荒谬的,并且会破坏会话的整个目的。
70 php  security  session 

5
如何获取Laravel存储文件夹的路径?
我想将上传的图像存储到Laravelstorage目录的子目录中的基于Laravel的Web应用程序中。它是与“应用程序”和“公共”目录相同层次结构的目录。 是否有执行此操作的框架方法?我已经搜索过文档,但找不到。
70 php  laravel 

7
使用PHPExcel设置电子表格单元格的宽度
我正在尝试通过以下方式设置用PHPExcel生成的Excel文档中单元格的宽度: $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false); 但这不起作用。 我需要在这里调用什么方法?

7
无法使用旧的身份验证连接到MySQL 4.1+
我正在尝试连接到http://bluesql.net上的mySQL数据库,但是当我尝试连接时,出现此错误: Connect Error (2000) mysqlnd cannot connect to MySQL 4.1+ using old authentication 我已经研究过了,它与MySQL 4.1之前使用的一些旧密码方案有关。较新的版本可以选择使用旧密码,我读过此密码可能会导致此问题。 我正在运行php 5.3,并与mySQLi(新的mysqli(...))连接。我希望我可以在代码中做一些事情以连接到bluesql.net上的数据库-显然我不控制如何设置他们的数据库。降级php版本不是一种选择。 谁有想法?

10
根据其中的内容高度调整iframe的高度
我正在网站上打开博客页面。问题是我可以给iframe设置宽度,但高度应该是动态的,以便iframe中没有滚动条,而且看起来像是一个页面... 我尝试了各种JavaScript代码来计算内容的高度,但是所有这些代码都给出了拒绝访问权限错误,没有用。 <iframe src="http://bagtheplanet.blogspot.com/" name="ifrm" id="ifrm" width="1024px" ></iframe> 我们可以使用Ajax来计算高度还是使用PHP?
69 php  javascript  ajax  iframe 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.