首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用php的exec函数在Linux中使用diff

使用php的exec函数在Linux中使用diff
EN

Stack Overflow用户
提问于 2010-12-15 19:15:08
回答 3查看 3K关注 0票数 1

我必须比较两个xml文件,并使用php和Linux的diff命令生成一个补丁。下面是我的代码:

代码语言:javascript
运行
复制
<?php

// script file location: /var/local/out/upload.php
// ...

// $templateName file location: /var/local/out/upload/example_word_template/word/document.xml
// $filename file location: /var/local/out/upload/example_word/word/document.xml

// $templateName value: upload/example_word_template/word/document.xml
// $filename value: upload/example_word/word/document.xml

$command = "diff /var/local/out/$templateName /var/local/out/$filename > /var/local/out/patch.patch";
exec($command);
echo($command);

?>

浏览器输出:

比较本地>/var/ /var/local/out/upload/example_word_template/word/document.xml /var/local/out/upload/example_word/word/document.xml /out/patch.patch

如果我复制并粘贴输出,然后直接在Linux中执行它,它会运行得很好。但是脚本本身不会生成补丁文件。会出什么问题呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-15 19:26:43

尝试检查执行命令的输出,可能您正在运行apache的用户没有权限写入该文件夹或其他内容...:

代码语言:javascript
运行
复制
$output=array();$status=0;
exec($command,$output,$status);
var_dump($output);var_dump($status);
票数 2
EN

Stack Overflow用户

发布于 2010-12-15 19:21:22

PHP有一个PECL extension for xdiff,你可能想试一下。

xdiff_file_diff手册中的示例

代码语言:javascript
运行
复制
$old_version = 'my_script.php';
$new_version = 'my_new_script.php';

xdiff_file_diff($old_version, $new_version, 'my_script.diff', 2);

请注意,diff仅在语法级别上,而在语义上,

代码语言:javascript
运行
复制
<element foo="foo" bar="bar"/>

代码语言:javascript
运行
复制
<element 
    foo="foo"
    bar="bar"/>
票数 5
EN

Stack Overflow用户

发布于 2010-12-15 19:26:54

您想要像这样捕获输出...

代码语言:javascript
运行
复制
$command = "diff /var/local/out/$templateName /var/local/out/$filename > /var/local/out/patch.patch";
exec($command, $output);

var_dump($output);

你可以像这样重新组装线条...

代码语言:javascript
运行
复制
echo join("\n", $output);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4449282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档