小编hal*_*.am的帖子

如何在PHP中获取目录大小

function foldersize($path) {
  $total_size = 0;
  $files = scandir($path);

  foreach($files as $t) {
    if (is_dir(rtrim($path, '/') . '/' . $t)) {
      if ($t<>"." && $t<>"..") {
          $size = foldersize(rtrim($path, '/') . '/' . $t);

          $total_size += $size;
      }
    } else {
      $size = filesize(rtrim($path, '/') . '/' . $t);
      $total_size += $size;
    }
  }
  return $total_size;
}

function format_size($size) {
  $mod = 1024;
  $units = explode(' ','B KB MB GB TB PB');
  for ($i = 0; $size > $mod; $i++) …
Run Code Online (Sandbox Code Playgroud)

php filesystems

54
推荐指数
9
解决办法
9万
查看次数

PHP错误:php_network_getaddresses:getaddrinfo失败:(从其他站点获取信息时.)

试图从外部源获取信息,我收到以下错误:

警告:php_network_getaddresses:getaddrinfo失败:行#中名称解析暂时失败...

昨天一切都很好,所以这个脚本发生了什么,这是不行的,并给我上面的错误?任何解决方案或提示来解决这个问题?

$uri = "http://api.hostip.info/?ip=$ip&position=true";

$dom->load($uri);
Run Code Online (Sandbox Code Playgroud)

我也试过将DNS转换为IP,但后来我收到了警告: failed to open

$uri = "174.129.200.54/?ip=$ip&position=true";
Run Code Online (Sandbox Code Playgroud)

我试图删除http但仍然得到上述错误.

php warnings

29
推荐指数
4
解决办法
14万
查看次数

php - 致命错误:在AppServ中调用未定义的函数mcrypt_get_iv_size()

当我通过AppServ使用mcrypt_get_iv_size函数时,我发现了一个问题.

我试图找到一个与解决问题相关的主题.

但是,我尝试将libmcrypt.dll下载到symtem32并通过删除注释;extension=php_mcrypt.dll来编辑php.ini extension=php_mcrypt.dll.然后重启apache.

不幸的是,重新加载页面后看到修改后的结果.

它仍然是错误的

致命错误:在第36行的C:\ AppServ\www\folder\index.php中调用未定义的函数mcrypt_get_iv_size()

功能包含以下内容:

class Encryption {
    var $skey     = "SuPerEncKey2010"; // you can change it

    public  function safe_b64encode($string) {

        $data = base64_encode($string);
        $data = str_replace(array('+','/','='),array('-','_',''),$data);
        return $data;
    }

    public function safe_b64decode($string) {
        $data = str_replace(array('-','_'),array('+','/'),$string);
        $mod4 = strlen($data) % 4;
        if ($mod4) {
            $data .= substr('====', $mod4);
        }
        return base64_decode($data);
    }

    public  function encode($value){

        if(!$value){return false;}
        $text = $value;
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
        $crypttext …
Run Code Online (Sandbox Code Playgroud)

php appserver

22
推荐指数
3
解决办法
4万
查看次数

PHP如何处理一个引用自身作为元素的数组?

让我们说我声明一个数组:

$data = array( 'foo' => 'bar' );
Run Code Online (Sandbox Code Playgroud)

现在我将添加对自身的引用作为新元素:

$data['baz'] = &$data;
Run Code Online (Sandbox Code Playgroud)

转储内容$data将导致:

Array
(
[foo] => bar
[baz] => Array
    (
        [foo] => bar
        [baz] => Array
         *RECURSION*
    )

)
Run Code Online (Sandbox Code Playgroud)

现在,我可以转储内容,$data['baz']['baz']['baz']['baz']['baz']['baz']['baz']['baz']['baz']结果将与上面的内容完全相同,因为数组有一个指向自身的指针作为元素.

我想知道的是,如果php将数组作为一组数据处理,其指针与我在使用时调用的指针完全相同,$data或者它是否完全不同.

此外,PHP可以在返回内容时尝试内存不足$data{['baz']*n}吗?

php arrays recursion reference

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

计算哪些产品一起提供所需的功率

假设我有三种产品:

产品A 将提供5个电源.费用50.

产品B将提供9个电源.费用80.

产品C将提供15次电源.费用140.

我想知道当我需要7个电源时我可以购买哪些产品组合.我可以买两个AB中的一个更便宜.

当我需要65电源时.我需要4次C和1次A(费用680).但我也可以购买七种B产品和一种A(成本610).

我正在寻找一种方法来计算我需要的给定功率量的产品的可能组合.

我尝试这样做的方式并没有给我我想要的东西:

// $products are sorted DESC on their $power
$power = 65
 while( $power > 0 ) {
    foreach( $products as $productPower ) {
        if( ( $productPower > $power && $power - $productPower > 0 ) || $productPower == end( $products ) ) {
            // Add product to list
            $power -= $productPower;
            break;
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

此示例代码将只给我4个Ç …

php algorithm optimization

15
推荐指数
2
解决办法
850
查看次数

如何在Zend Framework应用程序中返回XML

我在ZF应用程序中返回XML时遇到问题.我的代码:

class ProjectsController extends Gid_Controller_Action
{
    public function xmlAction ()
    {
        $content = "<?xml version='1.0'><foo>bar</foo>";
        header('Content-Type: text/xml');
        echo $content;
    }
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过以下方法:

class ProjectsController extends Gid_Controller_Action
{
    public function xmlAction ()
    {
        $content = "<?xml version='1.0'><foo>bar</foo>";
        $this->getResponse()->clearHeaders();
        $this->getResponse()->setheader('Content-Type', 'text/xml');
        $this->getResponse()->setBody($content);
        $this->getResponse()->sendResponse();
    }
}
Run Code Online (Sandbox Code Playgroud)

有人能指出我正确的方向如何实现这一目标?

xml zend-framework return response

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

PHP/Apache2响应中缺少CORS头

我公司正在开发的Zend Expressive项目已准备好发货,但在我们的暂存环境中,我们似乎缺少CORS飞行前请求的响应标头.这在我们的开发环境中不会发生.我们在我们的管道中使用CorsMiddleware,但它看起来并不像中间件是罪魁祸首.

问题

在运行时,中间件检测传入的飞行前请求,它将回复如下响应:

HTTP/1.1 200 OK
Date: Mon, 20 Aug 2018 15:09:03 GMT
Server: Apache
X-Powered-By: PHP/7.1.19
Access-Control-Allow-Origin: https://example.com
Vary: Origin
Access-Control-Allow-Headers: content-type
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

嗯,这只适用于我们的开发服务器和php的内置Web服务器.响应与我们的登台服务器不同,即使请求完全相同,除了主机:

HTTP/1.1 200 OK
Date: Mon, 20 Aug 2018 15:11:29 GMT
Server: Apache
Keep-Alive: timeout=5, max=100
Cache-Control: max-age=0, no-cache
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

我们尝试过的

调查中间件

我们已经验证CorsMiddleware运行完美,实际上设置了所需的标题.当我们修改CorsMiddleware的响应代码,并将其设置202的,而不是200我们现在做的也得到了我们正在寻找的头.更改响应代码200使标题再次消失.

手动设置标头

使用以下示例:

header('Access-Control-Allow-Origin: https://example.com');
header('Access-Control-Allow-Headers: content-type');
header('Vary: Origin');
exit(0); …
Run Code Online (Sandbox Code Playgroud)

php apache response-headers zend-expressive

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

键入检查所有数组元素

有没有简单的方法来检查数组的所有元素是否是特定类型的实例而不循环所有元素?或者至少是从数组中获取X类型的所有元素的简单方法.

php arrays types

10
推荐指数
2
解决办法
5899
查看次数

jQuery UI - 如何恢复丢弃的draggable

我有3个Div,我可以拖动到垃圾桶的图像.一旦用户释放鼠标,Div就会被删除,否则它会被恢复到原来的位置,这是我的代码:

<div id="draggables">
    <div id="d1">
        <header>A</header>
    </div>
    <div id="d2">
        <header>B</header>
    </div>
    <div id="d3">
        <header>C</header>
    </div>
</div>


<img src="trash.jpg" id="trash" class="semitransparent" />

<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.17.custom.min.js"></script>
<script>

$(function(){
    // draggables...

    $("#d1,#d2,#d3").draggable({
        revert:"invalid"
    });

    $("#trash").droppable({

        activeClass:"opaque",
        drop: function(event, ui){

            ui.draggable.fadeOut(function(){
                ui.draggable.remove();

            });
        }

    });

});
Run Code Online (Sandbox Code Playgroud)

我还将activeClass应用于垃圾桶的图像,以便用户意识到他们可以拖动/功能是活动的.但是我想扩展我的代码,所以当Div被删除时,它会恢复到"draggables"Div中的原始位置.我不确定是否在可拖动元素上或函数内使用辅助克隆以某种方式附加到"draggables"Div.有人有建议吗?有没有像ui.draggable.restore();我这样的方法?

如果我的措辞不好请告诉我,我会重新解决这个问题.

jquery jquery-ui

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

self :: __ construct()和new self()之间的确切区别

你能告诉我return self::__construct()和之间的确切区别return new self()吗?

实际上,当创建对象时,实际上可以self::__construct()__construct()调用返回a ,返回对象本身,好像第一个__construct()从未调用过一样.

php constructor class instance

6
推荐指数
2
解决办法
8461
查看次数