小编Ric*_*ams的帖子

PHP对象的数组

所以我一直在寻找一段时间,找不到一个简单问题的答案.PHP中是否可以有一个对象数组?如:

$ar=array();    
$ar[]=$Obj1    
$ar[]=$obj2
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我无法在任何地方找到答案.我认为这是可能的,但我只需要确定.

php arrays object

57
推荐指数
6
解决办法
26万
查看次数

PHP不会确认自己上传的临时文件

我在这里有一个真正的头脑.

这是我的系统配置:

  • Windows Server 2008 R2
  • PHP 5.3.8作为FastCGI模块安装
  • IIS 7.5

这是我的问题:

我有一个简单的文件上传表单.众所周知,当PHP接受文件上载时,该文件会被赋予一个临时名称,并在处理之前放在临时目录中.在我的例子中,PHP将文件放在临时目录(恰好是E:\ Inetpub_IIS\tmp,E:\ Inetpub_IIS\wwwroot旁边),然后立即"忘记"文件存在,直到垃圾收集器出现,删除临时文件.更具体地说,临时文件是在服务器上的临时目录中创建的,但是当我在该文件上调用sha1_file()时,该函数不返回任何内容.file_exists()也失败了.这让我觉得PHP无法找到该文件.下面的ProcMon日志显示PHP正在寻找合适的位置.

这是我的ProcMon日志:

2:43:14.9175650 PM  php-cgi.exe 5020    CreateFile  E:\Inetpub_IIS\tmp\php3F86.tmp  SUCCESS Desired Access: Generic Read, Disposition: Create, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: None, AllocationSize: 0, Impersonating: NT AUTHORITY\IUSR, OpenResult: Created
2:43:14.9182596 PM  php-cgi.exe 5020    CloseFile   E:\Inetpub_IIS\tmp\php3F86.tmp  SUCCESS 
2:43:14.9184424 PM  php-cgi.exe 5020    QueryOpen   E:\Inetpub_IIS\tmp\php3F86.tmp  SUCCESS CreationTime: 12/27/2011 2:43:14 PM, LastAccessTime: 12/27/2011 2:43:14 PM, LastWriteTime: 12/27/2011 2:43:14 PM, ChangeTime: 12/27/2011 2:43:14 PM, AllocationSize: 0, EndOfFile: 0, FileAttributes: …
Run Code Online (Sandbox Code Playgroud)

php windows iis upload

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

调用未定义的函数mysqli_result :: num_rows()

我正在尝试计算结果中的行数,并且我不断得到上面返回的错误.我已经检查了手册,我正在使用mysqli_result :: num_rows(),因为我应该这样(我使用的是面向对象的样式.)我有三个班级在这里工作.

类(连接):

class utils_MysqlImprovedConnection {
    protected $_connection;

    public function __construct($host, $user, $pwd, $db)
    {
        $this->_connection = @new mysqli($host, $user, $pwd, $db);
        if(mysqli_connect_errno ()) {
            throw new RuntimeException('Cannot access database:' . mysqli_connect_error());
        }
    }

    public function getResultSet($sql)
    {
        $results = new utils_MysqlImprovedResult($sql, $this->_connection);
        return $results;
    }

    public function  __destruct() {
        $this->_connection;
    }
}
Run Code Online (Sandbox Code Playgroud)

类(处理结果):

class utils_MysqlImprovedResult implements Iterator, Countable {
    protected $_key;
    protected $_current;
    protected $_valid;
    protected $_result;


    public function  __construct($sql, $connection) {
       if (!$this->_result = $connection->query($sql)){
           throw new …
Run Code Online (Sandbox Code Playgroud)

php mysqli

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

案例的顺序在PHP switch语句中是否重要?

在PHP switch语句中,将更常见的案例置于最高位置是否会提高性能?

例如,假设以下函数被调用1,000次:

<?php 
function foo_user ($op) {
    switch ($op) {
        case 'after_update':
        //Some Stuff
        case 'login':
        //Some other Stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

如果在函数被调用的1000次中的990中,$ op参数是'login',那么在语句中使用case: 'login'以上内容会改善性能吗?例如,如果传递了代码后会被忽略吗?case 'after_update':switchcase 'after_update':$op = login

我对这个想法进行了一些非正式的测试,但差别可以忽略不计 - 也许是因为代码之后case: 'login'并且case 'after_update':都是微不足道的.如果有人完全知道答案,我宁愿避免使用非平凡的操作设置更广泛的测试.

这特别是Drupal问题,但我想任何熟悉PHP优化的人都可以解决这个问题.

php optimization drupal micro-optimization

5
推荐指数
2
解决办法
1870
查看次数

如何在JavaScript中对数组进行排序

我没有使用关联数组.我正在使用像这样的1d数组,

array("1,a","5,b","2,c","8,d","6,f");
Run Code Online (Sandbox Code Playgroud)

我该如何排序这个数组?

结果应该是,

array("1,a","2,c","5,b","6,f","8,d");
Run Code Online (Sandbox Code Playgroud)

javascript sorting jquery

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

PHP OOP:方法链接

我有以下代码,

<?php
class Templater
{
    static $params = array();

    public static function assign($name, $value)
    {
        self::$params[] = array($name => $value);
    }

    public static function draw()
    {
        self::$params;
    }
}


 $test = Templater::assign('key', 'value');
 $test = Templater::draw();
 print_r($test);
Run Code Online (Sandbox Code Playgroud)

如何更改此脚本以便我可以使用它?

$test = Templater::assign('key', 'value')->assign('key2', 'value2')->draw();
print_r($test);
Run Code Online (Sandbox Code Playgroud)

php oop method-chaining

4
推荐指数
2
解决办法
2920
查看次数

SHA512和MD5散列

有一段时间我一直在寻找一种更安全的方法来在我的网站上散列用户密码,以便插入到数据库中.我已经研究了所有可用的散列方法.有人说bcrypt是最好的,因为它的速度很慢.我在想,如果我不需要最高的安全性,但仍然保持安全.如果我在该哈希上使用sha512然后使用md5会怎么样?如果我改变了哈希的顺序,这有关系吗?请记住,我将为每个操作使用单独的盐.这有多安全?是否有其他组合可以做同样的事情?

security hash

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

从mysql拆分内爆数组到php中的变量

好吧基本上我无法弄清楚如何将mysql的内爆结果恢复为php中的可用变量.阵列正在抛弃我,让我疯狂.

从db动态创建的复选框:

<input name="tournament_id[]" value="'.$row['tournament_id'].'" type="checkbox">'.$row['tournament_name'].'
Run Code Online (Sandbox Code Playgroud)

发布的值被破坏(尚未实施sql注入预防):

$got_tournament_id = implode(",",$_POST['tournament_id']);
Run Code Online (Sandbox Code Playgroud)

这会像这样插入到mysql中:

id   user_id   tournament_id
1    16942627  1,10
Run Code Online (Sandbox Code Playgroud)

这是我的mysql查询来获取内爆数据:

$query = ("SELECT tournament_id FROM tournament WHERE user_id=16942627");
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
$got_it = $row['tournament_id'];    
}
$bust_him = var_dump(explode(",", $got_it));
echo $bust_him;
Run Code Online (Sandbox Code Playgroud)

以上使用var_dump返回以下内容:

array(2) { [0]=> string(1) "1" [1]=> string(2) "10" }
Run Code Online (Sandbox Code Playgroud)

现在这是我完全迷失的地方,并且无法弄清楚如何将数组中的值1和10转换为单个变量.我已经尝试了几种方法来做到这一点,并且我总是以错误结束,或者只是单词数组.如果有人可以提供一些,我需要一些帮助.提前致谢.

php mysql arrays explode implode

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

PHP类型匹配

在PHP中,有人可以向我解释为什么这会解析为真:

'NONE' == 0
Run Code Online (Sandbox Code Playgroud)

php

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

php中新文件夹的权限

我的代码看起来像这样:

do
{
    $rand = rand(1,10000000); 
    $name_of_file_clear = $rand ;
    $name_of_file = $rand . '.JPG' ;
    $name_of_file_t = $rand . '_t.JPG' ; // for thubnsdffafasf
    $this_directory_path = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);
    $images_directory_path = $_SERVER['DOCUMENT_ROOT'] . $this_directory_path . 'img/' . $name_of_file_clear . '/';
    $whole_path = $images_directory_path.$name_of_file;
} while (file_exists($whole_path));

mkdir($images_directory_path, 777);
chmod($images_directory_path, 777);
move_uploaded_file($temp_file_name, $whole_path);
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试上传文件时,文件不会上传.我认为这个问题与权限有关.请帮帮我,我是php的新手.

php chmod

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