相关疑难解决方法(0)

如何在PHP中获取客户端IP地址

如何使用PHP获取客户端IP地址?

我想记录通过他/她的IP地址登录我网站的用户.

php ip-address environment-variables

1123
推荐指数
23
解决办法
151万
查看次数

PHP shell_exec()vs exec()

我很难理解shell_exec()exec()... 之间的区别

我一直习惯于exec()执行服务器端命令,我shell_exec()什么时候使用?

是否shell_exec()只是一个速记exec()?参数较少似乎是一样的.

php shell command exec

327
推荐指数
4
解决办法
41万
查看次数

PHP中的system(),exec()和shell_exec()有什么区别?

可以通过三个PHP函数运行外部命令

system();
exec();
shell_exec();
Run Code Online (Sandbox Code Playgroud)

但他们的区别是什么?尽管它们具体应用,但在大多数情况下,可以同样使用.我很想知道哪些是可以同样使用的首选.例如,对于解压缩文件或压缩文件夹(使用tar命令),哪一个是首选(可能从性能的角度来看)?

更新:在另一个问题中,我发现了一个非常有用的链接,描述了这些功能的不同方面.我在这里分享链接,因为其他人可能会用来更好地了解安全问题和其他方面.

php shell system exec shell-exec

64
推荐指数
1
解决办法
5万
查看次数

PHP中的exec(),shell_exec,system()和passthru()函数有什么不同?

有人请告诉我.我想知道之间的不同exec(),shell_exec,system()passthru()功能?

我从php.net搜索无法得到我需要的答案.

php

36
推荐指数
1
解决办法
3万
查看次数

如何隐藏system()输出

我正在使用Windows XP.我可以通过调用自动执行ssh会话的TCL脚本,通过浏览器成功运行system()命令.我还从脚本中返回一个值.但问题是脚本会在浏览器中转储整个ssh会话.

我的php脚本看起来像:

$ lastline = system('"C:\ tcl\bin\tclsh.exe"\ path to file\filename.tcl'.$ username.''.$ pass,$ val);

filename.tcl:

spawn plink -ssh $ user @ $ host
expect"assword:"
send"$ pass\r \n"
expect"\ prompt:/ - >"
set $ return_value [string compare /..string../ $ expect_out(buffer)]
/...一些代码......这样运行正常/
退出$ return_value

一切运行正常,我得到正确的$ return_value,但php文件打印在我的浏览器中执行整个ssh会话的结果,如下所示:

使用用户名"admin".admin@10.135.25.150的密码:===/*some text*/===\prompt:/ - > .../some text/

我想阻止system()函数在我的浏览器中打印这个
我已经使用了shell_exec()函数,但是它返回了整个ssh会话结果(我已经在tcl脚本中解析并获得了一个精确的值来返回到php脚本)有没有办法,我可以不使用shell_exec()而是使用system()代替

提前致谢

php system

19
推荐指数
1
解决办法
2万
查看次数

exec()导致启动请求程序的无限循环

操作系统:Linux.

WHM,cpanel使用.

PHP 5.3.2(cli)(内置:2010年6月11日02:25:31)版权所有(c)1997-2010 PHP Group Zend Engine v2.3.0,版权所有(c)1998-2010 Zend Technologies

<?php
exec("php xyz.php");
?>
Run Code Online (Sandbox Code Playgroud)

开始无数次地调用xyz.php.服务器在一段时间后挂起.

从控制台调用'php xyz.php'工作正常.

php

5
推荐指数
1
解决办法
1633
查看次数

管道在Phing执行任务

我正在尝试使用以下ExecTask在我的构建文件中实现一个像样的随机字符串生成器 :

<exec command="cat /dev/urandom | tr -cd '[:alnum:]' | fold -w30 | head -n1" returnProperty="random" />
Run Code Online (Sandbox Code Playgroud)

虽然这在命令行上运行时工作正常,但是当我尝试从Phing调用它时,它会导致我的构建脚本挂起.我尝试了各种逃脱模式无济于事.我究竟做错了什么?

phing random command-line

5
推荐指数
1
解决办法
308
查看次数

pngquant PHP示例不起作用

我正在尝试使用pngquant压缩算法使用WAMP动态压缩PNG图像.他们提供了一个PHP示例(我认为)应该使用Windows命令行二进制文件,我已将其放在system32文件夹中,我可以从命令行的任何位置访问它.

我已经采取了他们的例子,并将问题追溯到了这一$compressed_png_content = shell_exec("pngquant --quality=$min_quality-$max_quality - < ".escapeshellarg( $path_to_png_file));行.我已将其简化为var_dump(shell_exec('pngquant - < test.png'));但它只输出前5个字符,即使passthru('pngquant - < test.png');似乎将正确的输出作为字符串发送给用户.exec('pngquant - < test.png',$output); var_dump($output);似乎也捕获了正确的输出但是以数组的形式,我真的不知道如何转换回图像文件.我想捕获变量中的输出,以便我可以使用进一步的压缩算法和操作,并将其作为可下载文件发送给用户.

我已经读过system()vs exec()vs shell_exec()vs passthru()vs proc_open()vs popen()之间差异.Shell_exec()似乎是正确的选择,但它在php.net上说shell_exec()输出一个字符串.这可能是个问题吗?如何正确捕获pngquant - < test.png变量的命令输出?

php pngquant

5
推荐指数
1
解决办法
727
查看次数

使用PHP编译C++文件

我在Windows机器上使用PHP.我也使用Dev C++.我可以使用以下命令在CMD上完美地编译.cpp文件:

g++ hello.cpp -O3 -o hello.exe
Run Code Online (Sandbox Code Playgroud)

现在我要做的是使用php system()函数运行相同的命令,所以它看起来像这样:

system("g ++ c:\ wamp\www\grader\hello.cpp -O3 -o C:\ wamp\www\grader\hello.exe");

但它没有编译.我迷路了,请告诉我我错过了什么?

我也抬头看了这个问题,这正是我需要的,但我找不到一个有用的解决方案,我的情况:

用于编译c ++文件并使用输入文件运行可执行文件的PHP脚本

php c++ cmd

4
推荐指数
1
解决办法
4518
查看次数

无法使用PHP执行外部进程

我有以下代码

function generate_pdf() {

        $fdf_data_strings = $this->get_hash_for_pdf();
        #$fdf_data_names   = array('49a' => "yes");
        $fdf_data_names = array();
        $fields_hidden    = array();
        $fields_readonly  = array();
        $hud_pdf = ABSPATH.'../pdf/HUD3.pdf';

        $fdf= forge_fdf( '',
                 $fdf_data_strings,
                 $fdf_data_names,
                 $fields_hidden,
                 $fields_readonly );

        /*  echo "<pre>";
            print_r($fdf);
            echo "</pre>";
            die('');
        */

        $fdf_fn= tempnam( '.', 'fdf' );
        $fp= fopen( $fdf_fn, 'w' );
        if( $fp ) {
          fwrite( $fp, $fdf );
            //$data=fread( $fp, $fdf );
         // echo $data;
          fclose( $fp );


          header( 'Content-type: application/pdf' );
          header( 'Content-disposition: attachment; filename=settlement.pdf' ); // prompt to …
Run Code Online (Sandbox Code Playgroud)

php linux pdftk

2
推荐指数
1
解决办法
3208
查看次数

mysqldump无法通过php工作

我试图通过PHP获取数据库的mysqldump,我只能通过这种方式通过命令行进行数据库转储.

d:
cd "d:\wamp\bin\mysql\mysql5.5.24\bin"
mysqldump.exe
mysqldump --user=user --password=password --host=localhost db_name > "D:\dump\test.sql"
Run Code Online (Sandbox Code Playgroud)

当试图以这种方式从php执行此命令时,我得到一个空的转储文件.

$cmd  = 'd: cd "d:/wamp/bin/mysql/mysql5.5.24/bin"mysqldump.exe>mysqldump --user=user --password=password --host=localhost db_name > "D:\dump\test.sql"';
exec($cmd);
Run Code Online (Sandbox Code Playgroud)

或者这样

$cmd  = 'd:/wamp/bin/mysql/mysql5.5.24/bin>mysqldump.exe>mysqldump --user=user --password=password --host=localhost db_name > D:\dump\test.sql';
exec($cmd);
Run Code Online (Sandbox Code Playgroud)

或者这样

$cmd  = 'd:/wamp/bin/mysql/mysql5.5.24/bin>mysqldump --user=user --password=password --host=localhost db_name > D:\dump\test.sql';
exec($cmd);
Run Code Online (Sandbox Code Playgroud)

我只得到空的转储文件.我已经经历了很多的问题在这里一样了这个,而和很多,但没有该解决方案为我工作.

请查看并建议任何可行的方法.

谢谢.

php mysql command-line mysqldump

1
推荐指数
1
解决办法
3222
查看次数