Articles of PHP的

如何编译一个用于Windows的PHP 5.3扩展作为DLL?

我目前正在重写最初为PHP 4.2.2.编写的PHP扩展PHP 4.2.2. 我的问题是build立/编译过程生成一个.dll而不是编译到PHP核心的扩展。 环境是Windows Server 2003.我正在使用Visual Studio 2008。 我使用EXT_SKEL脚本来生成框架,我可以成功地将扩展编译到php核心。 我试图将其编译为.dll以便我可以轻松地将其分发给我的客户。 任何人都可以指出我正确的方向如何告诉PHP 5.3构build过程,我想我的扩展名为.dll而不是静态地编译到PHP本身? 为了构build扩展的框架,我运行: php.exe ext_skel_win32.php –extname=myextension –proto=myprototypefile.dat 修改config.w32来取消注释“ARG_ENABLE”行,并启用默认值 buildconf.bat cscript /nologo configure.js NMAKE 我确认我可以在PHP中运行扩展的方法,但是它不会生成可分发的.dll。 而是将其编译到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 。