小编Bab*_*aba的帖子

与PHP的SSH连接

我目前正在开发一个用PHP进行系统更改的项目(例如,更改Nginx /重启服务的配置文件).

PHP脚本在localhost上运行.在我看来,最好的(读取:最安全)方式是使用SSH建立连接.我考虑以下选项之一:

选项1:在php会话中存储用户名/密码并提示输入sudo

使用带有用户名/密码的phpseclib,将这些值保存在php会话中,并为每个命令提示sudo.

选项2:使用root登录

在登录脚本中使用phpseclib和root用户名和密码.在这种情况下,您不必向用户询问sudo.(不是真正安全的解决方案)

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('root', 'root-password')) {
    exit('Login Failed');
}
?>
Run Code Online (Sandbox Code Playgroud)

选项3:使用从文件中读取的公钥进行身份验证

使用带有公钥的PHP SSHlib进行身份验证,并将pubkey放在www root之外.

<?php

    $connection = ssh2_connect('shell.example.com', 22, array('hostkey' => 'ssh-rsa'));
    if (ssh2_auth_pubkey_file($connection, 'username', '/home/username/.ssh/id_rsa.pub', '/home/username/.ssh/id_rsa', 'secret')) {
        echo "Public Key Authentication Successful\n";
    } else {
        die('Public Key Authentication Failed');
    }
?>
Run Code Online (Sandbox Code Playgroud)

方案4:?

php linux ssh

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

增加"__toString"

我不确定标题应该是什么,但代码应该更好地解释它:

class Group {
    private $number = 20;

    public function __toString() {
        return "$this->number";
    }
}

$number = new Group();
echo $number, PHP_EOL;
echo ++ $number, PHP_EOL;

echo PHP_EOL;

$number = "20";
echo $number, PHP_EOL;
echo ++ $number, PHP_EOL;

echo PHP_EOL;

$number = 20;
echo $number, PHP_EOL;
echo ++ $number, PHP_EOL;
Run Code Online (Sandbox Code Playgroud)

输出:

20
20              <--- Expected 21

20
21

20
21
Run Code Online (Sandbox Code Playgroud)

知道我为什么20而不是21?即使这样,下面的代码也适用:

$i = null ;
echo ++$i ; // output 1
Run Code Online (Sandbox Code Playgroud)

我知道Group是一个实现的对象__toString …

php increment magic-methods

9
推荐指数
2
解决办法
402
查看次数

使用Jquery从客户端的Image中删除红眼

我在客户端的浏览器上呈现了以下html代码:

<div id="Div">
  <img src="myImage.jpg" id="myImage"/>
</div>
Run Code Online (Sandbox Code Playgroud)

该特定图像由用户上载,然后在此处显示.我需要允许我的用户从此图像中删除任何红眼.我想这样做没有任何回发(我在后面使用CodeIgniter).在JQuery(或普通的Javascript)中是否有可用的库?如果不是什么可能是一个好方法?

php jquery image image-processing codeigniter-2

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

RecursiveIteratorIterator返回额外的元素

RecursiveIteratorIterator如果rewind()while循环之前未调用,则返回额外结果

$array = array("A","B","C");
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
//$iterator->rewind() ; this would fix it 
while ( $iterator->valid() ) {
    print($iterator->current()) ;
    $iterator->next();
}
Run Code Online (Sandbox Code Playgroud)

产量

AABC  <--- Instead of ABC
Run Code Online (Sandbox Code Playgroud)
  • 为什么额外A没有 C
  • 从未启动或调用Array为什么$iterator->rewind()while循环需要
  • foreach完美的工作,而不必调用使用迭代器rewind之间foreach和之间的差异while

代码在行动

php iterator

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

按日期按日期在php中按日期排序数组

我有一个数组,我想按日期排序.我无法按日期降序排序.请帮忙.

Array
(
[1] => Array
    (
        [1] => 11/05/2013
        [2] => Executive Planning Day
    )

[2] => Array
    (
        [1] => 13/06/2013
        [2] => Middle Leaders Planning Day
    )

[3] => Array
    (
        [1] => 12/07/2013
        [2] => New Staff Induction Day
    )

[4] => Array
    (
        [1] => 13/04/2013
        [2] => Staff Conference Day No. 1
    )

[5] => Array
    (
        [1] => 14/04/2013
        [2] => Staff Conference Day No. 2
    )

[6] => Array
    (
        [1] => …
Run Code Online (Sandbox Code Playgroud)

php

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

cURL - 在浏览器中工作,而不是在cURL中

我现在已经在这项任务上苦苦挣扎了近三天,我想我缺少一些基本的cURL技能.

我开始:

在IE的F12中,我在第一页上看到2个POST :(我注意到第一个是获得302应该是重定向,而使用cURL我只获得200)

填写验证码:

在第二页(在验证码之后):

交通:

这是我的代码(我不能继续使用它,因为它不适用于早期阶段):

我建立了一个特殊的表单,提交到我自己的页面GET(使用cURL),然后访问该网站:

$id=$_GET['id']; // getting the biznumber
$humanCode=$_GET['nobot'];

$curl = curl_init();
curl_setopt ($curl, CURLOPT_URL, "https://www.*******.******.***");


// setting some https to be able to access the website from my local computer.
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curl, CURLOPT_CAINFO, "c:/xampp/htdocs/CAcerts/curl-ca-bundle.crt");

// I know the values for the ASPX vars like __EVENTTARGET, __EVENTARGUMENT, __VIEWSTATE are arbitrary now. I need to take care of that but I don't yet know how.

$postarr= array ( …
Run Code Online (Sandbox Code Playgroud)

php debugging curl

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

数组中的重复键

在类型转换期间防止重复键的最佳方法是什么?

示例:

//Credits @bwoebi
$obj = (object)array(1,2,3);
$obj->{1} = "Duplicate key 1";
$obj->{2} = "Duplicate key 2";
$obj->{3} = "Duplicate key 3";
$array = (array)$obj ;
print_r($array);
Run Code Online (Sandbox Code Playgroud)

产量

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [1] => Duplicate key 1
    [2] => Duplicate key 2
    [3] => Duplicate key 3
)
Run Code Online (Sandbox Code Playgroud)

现在我知道一些聪明的人会说它,因为一个keystring另一个int使用var_dump

var_dump($array);
Run Code Online (Sandbox Code Playgroud)

产量

array (size=6)
  0 => int 1
  1 => int 2
  2 => int 3
  '1' …
Run Code Online (Sandbox Code Playgroud)

php arrays

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

get_headers不一致

运行以下代码

var_dump(get_headers("http://www.domainnnnnnnnnnnnnnnnnnnnnnnnnnnn.com/CraxyFile.jpg"));
Run Code Online (Sandbox Code Playgroud)

返回HTTP 200而不是404对于任何不存在的域或URL

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Server: nginx/1.1.15
    [2] => Date: Mon, 08 Oct 2012 12:29:13 GMT
    [3] => Content-Type: text/html; charset=utf-8
    [4] => Connection: close
    [5] => Set-Cookie: PHPSESSID=3iucojet7bt2peub72rgo0iu21; path=/; HttpOnly
    [6] => Expires: Thu, 19 Nov 1981 08:52:00 GMT
    [7] => Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    [8] => Pragma: no-cache
    [9] => Set-Cookie: bypassStaticCache=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; httponly
    [10] => Set-Cookie: bypassStaticCache=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; httponly …
Run Code Online (Sandbox Code Playgroud)

php validation

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

使用PHP合并图像时的图像透明度和alpha

所以我在PHP Doc上找到了一些代码,并稍微编辑它以合并我拥有的两个图像.然后将图像保存在服务器上的文件夹中.然而,有一个小问题,我无法弄清楚它为什么会发生.

首先是我的代码:

 $glassurl = $_GET['GlassImg'];
    $frameurl = $_GET['FrameImg'];
    $filename = (int)date("H:i:s");

    $src = imagecreatefromgif($frameurl);
    $dest = imagecreatefromjpeg($glassurl);

    imagecolortransparent($src, imagecolorat($src, 0, 0));

    imagealphablending($dest, false);
    imagesavealpha($dest, true);
    imagealphablending($src, false);
    imagesavealpha($src, true);

    $src_x = imagesx($src);
    $src_y = imagesy($src);
    imagecopymerge($dest, $src, 0, 0, 0, 0, $src_x, $src_y, 100);

    // Output and free from memory
    imagepng($dest, 'uploads/imagetest.png');
    imagegif($dest);

    imagedestroy($dest);
    imagedestroy($src

);
Run Code Online (Sandbox Code Playgroud)

其次有关图像的一些信息:

  1. 两个图像的大小完全相同
  2. "图案"图像只是块颜色/图案
  3. 帧图像在帧内具有透明部分(允许图案透过)
  4. 框架周围的区域是白色到多余的图案

我希望当我将框架重叠到图案上时,由于这些部件会产生一个窗框,内部有玻璃图案,白色会隐藏剩余的图案.

为了说明我提供了图像.会发生什么.

图案:

图案

帧:

帧

结果:

结果

正如你所看到的那样,它并没有达到我的预期.谁能告诉我哪里出错了?我想将框架叠加到图案上,保持透明中心并使用多余的白色覆盖其余的图案.任何帮助是极大的赞赏.

php gd image mask image-processing

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

将$ _GET和$ _POST分配给单个变量

我目前正在这样做:

$_GET 请求

$process = @$_GET['data_process'];
$id = @$_GET['data_id'];
$link = @$_GET['data_page'];
Run Code Online (Sandbox Code Playgroud)

$_POST 请求

$process = @$_POST['data_process'];
$id = @$_POST['data_id'];
$link = @$_POST['data_page'];
Run Code Online (Sandbox Code Playgroud)

虽然它看起来很麻烦.我该如何改进这个过程?

php

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

php的奇怪行为

今天我注意到了php的模糊性.我运行了这段代码

$i = 5;
$i = $i ++;
var_dump($i); //output 5 instead of 6 
Run Code Online (Sandbox Code Playgroud)

让我们假设初始值$i is 5.现在新值应该是6,但事实证明它是5.当我做同样的事情在C++6的预料.它是一些在PHP中被忽视了多年的错误还是其他一些东西.有人可以解释一下吗?

php c++

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