Articles of PHP的

在windows和linux中使用codeigniter时命名约定的问题

我在codeigniter框架中做了一个web应用程序。 我正在Windows机器上开发应用程序,并且最终版本在相同的情况下运行得非常好(即,窗口, 准确地说是wamp )。 现在我需要在Ubuntu服务器上部署应用程序。 在应用程序中需要初始login后,它不会显示任何其他页面。在检查控制台时,我发现这一点 [09:08:37.255] GET http://localhost/sac.org/index.php/member [HTTP/1.0 500 Internal Server Error 17ms] 我认为这是一个非常普遍的问题,从这些问题可以明显看出: codeigniter框架不能在linux上工作 Windows代码不能在linux上工作 codeigniter上传不能在Linux上工作 这里也是Codeigniter的问题 还有很多。 这些线程中提到的答案不适合我。 有没有办法解决这个问题? 我的代码示例是 <?php class member extends CI_Controller{ public $data1 = ""; public function __construct(){ parent::__construct(); $this->load->helper('form'); $this->load->helper('url'); $this->load->library('session'); $this->load->library('table'); $this->load->model('membermodel'); $this->data1 = $this->membermodel->getYearList(); } private function accesscheck(){ $privilege = $this->session->userdata('privilege'); if($privilege=='2'||$privilege=='1'){ return "True"; […]

在Windows上运行PHP应用程序 – 守护程序或cron?

我需要一些实施build议。 我有一个MYSQL数据库,将远程写入任务在本地进行处理,而且我需要使用PHP编写的应用程序,在他们进来时执行这些任务。 当然,我的PHP应用程序需要被告知什么时候运行。 我想过使用cron作业,但我的应用程序是在Windows机器上。 其次,我需要每隔几秒钟检查一次,而cron只能每分钟做一次。 我想写一个PHP的守护进程,但我已经得到了很好的工作,如果它甚至是一个好主意! 我将不胜感激任何build议,最好的方式来做到这一点。

Echo linebreak在Windows上使用Phing文件

在我的构build脚本中,我试图将date和SVN版本号输出到构build目录中的文件中。 我想在date和修订号码在单独的行,但不能得到linebreak输出到文件。 我已经尝试了各种方法: <echo file="${build.dir}\build.txt">DATE = ${DATE} \r\n \\\r\\\n PHP_EOL</echo> <echo msg="DATE: ${DATE} \r\n \\\r\\\n PHP_EOL 0x0D0A SVN revision: ${svn.lastrevision} . PHP_EOL" file="${build.dir}\build.txt" append="true" /> 是否有其他人设法通过Phing提交文件? 我已经看过phing中的代码,它使用fwrite。 我只能猜测我的build.xml中的string正在以某种方式越过被fwrite处理之前? 我想我可能不得不诉诸使用ExecTask?

Apache mod_rewrite:在Windows机器上使用PHP脚本的RewriteMap指令

这一直使我疯狂。 我似乎无法得到的RewriteMap指令工作的Windows脚本的PHP脚本。 这里是我的httpd.conf文件的相关片段: <IfModule mod_rewrite.c> RewriteEngine on RewriteMap router "prg:C:/dev/web/www/routing.php" RewriteRule (.*) ${router:$1} </IfModule> 我简单的PHP脚本是这样读的: #!C:\Program Files\PHP5.3.2\php-win.exe <?php set_time_limit(0); # forever program! $keyboard = fopen("php://stdin","r"); while (1) { $line = trim(fgets($keyboard)); echo "/sandbox.php?url=$line"; echo "\n"; } ?> 当我尝试启动Apache时,在我的错误日志中得到以下行: [错误](OS 193)%1不是有效的Win32应用程序。 :mod_rewrite:无法启动RewriteMap程序C:/dev/web/www/routing.phpconfiguration失败 apache文档指的是“魔术cookies技巧”(在“外部重写程序”标题下),它应该是指向解释器的脚本的第一行。 这是我要错了,还是我需要调用RewriteMap指令不同呢?

PHP的梅勒 – 电子邮件不发送超过100 KB的附件

我正在使用PHPMailer库来发送电子邮件。 我上传了代码到不同的服务器,现在电子邮件不能用于超过100 KB的大小的附件。 这是给错误 “不能实例化邮件function”。 它适用于小于100 KB的附件。 似乎在服务器上可能会有一些大小限制。 如果是这种情况,那么在哪里检查? 我正在使用Windows服务器 ,以下是在PHP邮件设置 $mail = new PHPMailer(); $mail->isMail(); $mail->isHTML(true); $mail->Host = 'localhost'; $mail->SMTPAuth = false; $mail->AddAddress('whoto@otherdomain.com', 'John Doe'); $mail->SetFrom('donotreply@yourdomain.com', 'First Last'); $mail->Subject = 'PHPMailer Test Subject via mail(), advanced'; $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; $mail->MsgHTML(file_get_contents('contents.html')); $mail->AddAttachment('path/to/attachment'); // attachment $mail->Send(); […]

PHP is_file在Ubuntu上为Windows共享返回false(不正确)

Ubuntu服务器PHP 5.3通过Samba连接到Windows服务器共享。 我正在使用file_exists()检查Windows计算机上文件的可用性。 它返回false,虽然文件path确实存在。 同时,完全相同的文件path上的file_get_contents()工作正常。 我想知道如果这是一个权限问题,因为我在Windows共享上configuration文件的权限(它说我没有权限更改他们的权限)有问题。 当我通过Nautilus查看权限时,它说用户和组都是root用户,拥有755个权限。 我想将该组更改为www-data,但似乎无法做到这一点。

如何设置PHP的envvariables?

我正在使用WAMP。 我想从命令提示符使用PHP。 PATH envvariables中的条目是什么?

ImageMagick支持的格式没有任何价值

我已经安装下载并从链接http://imagemagick.org/script/binary-releases.php#windows安装ImageMagick-6.8.3-7-Q16-x86-dll.exe ,我正在使用Windows 7和PHP 5.3 0.8。 在安装时,它正确地安装在我的机器上, convert命令完美地工作。 在我的转换configuration什么显示在这里 : 但在我的phpinfo部分,我得到: ImageMagick支持的格式没有价值 我得到了像这样的所有图像magick值https://www.evernote.com/shard/s297/sh/12397c86-d016-4ca4-9415-fd541daeca39/2fc504bf5ddba5693efd3249402b2b5c 。 我不知道为什么它没有价值我已经安装了相同的ImageMagick-6.8.3-7-Q16-x86-dll.exe在我的32位windows7机器上的PHP 5.3.8。 php_imagick.dll我从其他网站downloded。 我不知道什么是我在安装imagemaagick的问题,如果是php_imagick.dll版本的问题可以任何人build议这个configuration适当的php_imagick版本?

setlocale(LC_ALL,'en_GB.UTF8')不能在windows上工作

为什么setlocale(LC_ALL, 'en_GB.UTF8'); 在Windows Server 2003 R2上返回false – Zend CE PHP 5.3.5? 有问题的函数: setlocale 。

在PHP中使用exec命令时可能会发生权限问题

我们有一个小型的办公室内部网,使用PHP(在apache服务器上 – 如此WAMP)构build,允许我们在文件服务器上创build项目文件夹。 这可以通过使用shell exec xcopy命令和下面的开关/e /k /i /c将一组模板文件夹复制到一个新的位置。 我们(相当)最近升级到运行Windows Server 2008 R2 Standard的新文件服务器。 现在,xcopy命令不再可以在PHP中使用。 但是,我知道xcopy命令是正确的,因为它工作,如果我复制并粘贴到命令提示符(在同一台计算机上)。 我可以看到没有错误消息,但我认为这是与PHP的“用户”相关的某种权限问题,但我不知道究竟是什么或如何解决它。 Apache服务器和文件服务器是两个独立的机器。 如果相关,apache服务器是一个32位的机器,文件服务器是一个64位的机器,但正如我所说,我可以从32位机器的CLI调用xcopy命令没有问题。 Apache进程的用户名是SYSTEM(尽pipe我似乎无法使用'whoami'命令来检查这个) 任何指针将不胜感激。 FWIW,execstring看起来像这样… echo "xcopy \"\\\\path\\to\\folder\\xxxx_Project\\*.*\" \"\\\\path\\to\\folder\\9876_NEWPROJECT\" /e /k /i /c"; (我认为)具体化为… xcopy "\\path\to\folder\xxxx_Project\*.*" "\\path\to\folder\9876_NEWPROJECT" /e /k /i /c 显然,'9876_NEWPROJECT位实际上是一个variables。