Articles of PHP的

使用Perl或PHP在Linux上通过USB读写串口设备

我在Linux上从串口设备读取问题。 这个问题很奇怪,我无法确定原因。 我打开PHP的/ dev / ttyUSB0文件,并开始根据设备的协议与设备进行通信。 很多时候我遇到了PHP脚本等待设备响应的情况。 当我并行运行一个Perl脚本,应该这样做,它发送一个请求到同一个设备,并退出应该没有得到一个响应,但后来我看到PHP脚本得到了回应(只有在Perl脚本发送请求后) 。 当我尝试用PHP读取Arduino时遇到了类似的问题,PHP没有得到端口的响应,但Arduino IDE的串行监视器打印了它。 我想我在这里错过了关于Linux文件和USB端口的一个关键的事情。 可能是什么问题? 我怎么知道哪个程序使用这个端口/文件? $usb = 'ttyUSB0'; `stty -F /dev/$usb 9600`; `stty -F /dev/$usb -parity`; `stty -F /dev/$usb cs8`; `stty -F /dev/$usb -cstopb`; $f = fopen("/dev/$usb", "r+"); if(!$f) { echo "error opening file\n"; exit; } statusRequest($f); sleep(1); $c = readPort($f); echo "$c\n"; function statusRequest($port) { […]

如何在PHP中处理shell输出

我正在尝试编写一些PHP报告function的shell脚本。 所以我开始使用diskusage报告 我想要以下格式 drive path ————total-size ——–free-space 没有其他的 我的脚本是 $output = shell_exec('df -h -T'); echo "<pre>$output</pre>"; 其输出如下所示 Filesystem Type Size Used Avail Use% Mounted on /dev/sda6 ext3 92G 6.6G 81G 8% / none devtmpfs 3.9G 216K 3.9G 1% /dev none tmpfs 4.0G 176K 4.0G 1% /dev/shm none tmpfs 4.0G 1.1M 4.0G 1% /var/run none tmpfs […]

将所有文件和文件夹从一个目录复制到另一个目录PHP

我有名为“mysourcedir”的目录,它有sonme文件和文件夹。 所以我想从这个目录中的所有内容复制到使用PHP的Linux服务器上的其他“目标文件夹”。 function full_copy( $source, $target ) { if ( is_dir( $source ) ) { @mkdir( $target ); $d = dir( $source ); while ( FALSE !== ( $entry = $d->read() ) ) { if ( $entry == '.' || $entry == '..' ) { continue; } $Entry = $source . '/' . $entry; if […]

使www.example.com和example.com使用相同的会话variables的最佳方法是什么?

我在网页上工作(让我们称之为example.com),并在CNAME(别名)下添加DNSlogging: Host Record Points to TTL www example.com 14400 但是,当我浏览example.com时,如果我访问www.example.com,那么所设置的会话variables不会保留 使www.example.com和example.com使用相同的会话variables的最佳方法是什么? 我使用的是Ubuntu 12.04,php5,apache2。 <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName www.example.com Redirect 301 / http://example.com/ DocumentRoot /var/www/public_html <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/public_html> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI […]

APC和孩子pid XXXXX退出信号分割故障

首先,我在服务器上安装了xCache,在我的服务器上有很多xCache,但在这几天之后,除了在apache错误日志中出现这个错误的空白页之外, child pid XXXXX exit signal Segmentation fault 据我所知,这意味着某种内存腐败。 所以我从php.ini中删除了xCache并安装了APC。 但现在情况更糟了。 一小时或更less/更多的服务器变得无法响应。 我可以清楚地看到在我的网站的服务器状态,W模式下有很多连接。 他们没有任何共同之处 其中一些是从Joomla(第一页)和一些从vBulletin(论坛)和其他一些是关于其他自定义代码。 如果我让它更多的时间,我会在Apache错误日志中有这个错误: Server reached MaxClients setting, consider raising the MaxClients setting Apache是​​在mod_php和mod_ruid2模式。 这是挂起时服务器状态的结果: Server uptime: 52 minutes 57 seconds Total accesses: 31025 – Total Traffic: 279.0 MB CPU Usage: u418.14 s64.28 cu0 cs0 – 15.2% CPU load 9.77 requests/sec – 89.9 […]

如何从PHP执行交互式命令?

我需要从PHP脚本(使用浏览器,而不是命令行)在我的桌面机器(localhost)中执行kdiff3命令。 我已经授予执行脚本的用户www-data使用visudo执行kdiff3的权限。 事实上,如果我作为万维网数据login,我可以执行它没有问题( sudo kdiff3 … ,它被configuration为根本不要求密码)。 问题是当我尝试从PHP脚本执行这个命令。 我试过这个: $output = shell_exec("sudo kdiff3 -m $file.def.old $file $file.def -o $file"); 没有任何反应(输出为NULL)。 如果我尝试一个非交互式命令,像ls它的工作: $output = shell_exec("ls"); 发生了什么? 为什么不能执行交互式命令?

function.fopen:未能打开stream:在PHP中的权限被拒绝

我正在尝试从我的PHP应用程序为我的网站创buildXML站点地图。 这个想法是要么创build一个新的文件,要么覆盖现有的文件。 当我打电话时,我得到以下错误: [function.fopen]: failed to open stream: Permission denied 我试图写入到webroot,它的权限是:755.这意味着所有者拥有写权限,对吗? 我需要做什么才能让我的脚本能够写入这个文件夹? 777会是一件坏事,对吗? 我可以以某种方式运行我的脚本吗? 谢谢。

fopen()无法在linux上创build文件

我试图通过fopen()创build一个文件如下: <?php $handle = fopen('name.txt', 'w') or die('Can\'t create file'); fwrite($handle, 'Hamed'."\n"); fwrite($handle, 'Kamrava'."\n"); echo 'File was created successfully'; ?> 但不创build该文件,并让我: Can't create file PS: 我在Linux / Ubuntu上使用LAMP服务器。 我在创build该文件之前已经尝试了下面的命令: sudo chmod -R 755 ~/public_html/ 任何想法,将不胜感激。

如何压缩文件夹没有完整的path

首先我不是哪个是正确的stackExchange网站发布这个问题,如果问题是其他堆栈网站,请删除我的问题。 现在让我们来谈谈这个问题:这种情况是我有一个文件位于: /home/user/public_html/folder-one/folder-two/folder-three/file.php文件必须创build文件夹/folder-one包含/folder-one所有文件和子文件/folder-one 。 我使用系统函数(exec(),shell_exec()或system())创build存档,并且它工作得很完美。 我的代码是: <?php $output = 'zip -rq my-zip.zip /home/user/public_html/folder-one -x missthis/\*'; shell_exec($output); ?> 但是,当我下载并打开存档时,存档包括子文件夹/home ; /user ; /public_html但这个文件夹是完全不需要的,我想知道如何创buildzip没有他们。 当我尝试这样的事情$output = 'zip -rq my-zip.zip ../../../folder-one -x missthis/\*'; 但是当我打开文件夹(基于Windows 7的操作系统)时,文件夹的名称是../folder-one 后记:如果有人给我正确的 $output 基于Windows的托pipe计划制作拉链 将会更好 。 最好的问候,乔治!

PDO:如何访问Linux上的Microsoft Access文件?

我已经设法读取Windows上使用PDO的Microsoft Access文件(.accdb)的数据,但我有问题在Linux(CentOS)上工作。 我可以看到模块安装: [root@rapid host]# php -m | grep PDO PDO PDO_ODBC [root@rapid host]# php -m | grep odbc odbc 码: <?php try{ $dbhAccess = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=/root/access/data.accdb;Uid=Admin"); } catch(PDOException $e){ echo $e->getMessage(); exit(); } 我执行(CLI)PHP文件时遇到错误: [root@rapid host]# php access.php SQLSTATE[IM002] SQLDriverConnect: 0 [unixODBC][Driver Manager]Data source name not found, and no default […]