小编Ali*_*xel的帖子

PHP静态变量

$count = 5;
function get_count()
{
    static $count = 0;
    return $count++;
}
echo $count;
++$count;
echo get_count();
echo get_count();
Run Code Online (Sandbox Code Playgroud)

我猜测它输出5 0 1并且它是正确的,但我需要更好的解释?

php static

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

找到第n个排列而不计算其他排列

给定表示置换原子的N个元素的数组,是否有类似的算法:

function getNthPermutation( $atoms, $permutation_index, $size )
Run Code Online (Sandbox Code Playgroud)

其中$atoms是元素数组,$permutation_index是置换的索引,是置换$size的大小.

例如:

$atoms = array( 'A', 'B', 'C' );
// getting third permutation of 2 elements
$perm = getNthPermutation( $atoms, 3, 2 );

echo implode( ', ', $perm )."\n";
Run Code Online (Sandbox Code Playgroud)

会打印:

B, A
Run Code Online (Sandbox Code Playgroud)

没有计算每个排列直到$ permutation_index?

我听说过关于事实排列的一些事情,但我发现的每一个实现都会给出一个具有相同V大小的排列,这不是我的情况.

谢谢.

php algorithm math permutation

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

规范人体肤色以进行用户交互

前一段时间我偶然发现了这个问题,这个问题向我介绍了一个模糊的(至少对我而言)ISO 5218:一个代表人类性别的标准(或者是性别? - 感谢@Paul).

对于我正在研究的宠物项目,我需要我的数据库模式来存储一个人的肤色,我想知道是否存在类似的标准.我一生都听过人们使用诸如" 白人 "," 高加索人 "," 黑人 "," 金发女郎 "," 布鲁内特 "," 非洲人 "," 白化 "等词语,但经过维基百科的一些研究后我我们意识到每个人都错了,因为这些话都有不同的含义:

维基百科有大约人种如下:

  • 高加索
  • Congoid
  • Capoid
  • 蒙古人
  • Australoid

说真的,蒙古人?!我不知道英语的内涵,但用我的母语(葡萄牙语),这是一个患有唐氏综合症的人的同义词......

这个维基百科页面还有一些有趣的附加信息:

约翰·弗里德里希·布鲁门巴赫(约翰·弗里德里希·布鲁门巴赫(1752-1840),一些人称之为科学种族主义理论的创始人之一,提出了人类的五种颜色类型:白人(高加索人或白种人),或多或少的黑人(埃塞俄比亚人或黑人种族),黄色人(蒙古人或黄种人),肉桂棕色或火焰色的人(美国或红色种族)和棕色人(马来人或棕色种族).

使用种族的问题(除了可怕的名字选择和科学种族主义),它们并不一定代表一个人的肤色...... 从维基百科拍下面的照片:

坐与他的家庭的坦桑尼亚白变种孩子.

我能找到的对皮肤颜色进行分类最严重的尝试是Von Luschan的半音阶:

人体皮肤颜色分布 Von Luschan的半音阶

然而,大多数人并不知道他们的冯Luschan的规模(包括我自己).我还想让用户在视觉上指定他们肤色的颜色,但由于操作系统/监视器使用不同的颜色配置文件,这可能会导致一些问题.

还有一个更普遍的冯Luschan规模用于分类晒黑风险:

  1. von Luschan 1-5(非常轻).
  2. von Luschan 6-10(光). …

database schema standards user-interface iso

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

fgets()和fread() - 有什么区别?

我理解和之间的差异fgets(),fgetss()但我没有区别fgets()fread(),有人可以澄清这个问题吗?哪一个更快?谢谢!

php smtp stream fgets fread

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

Nginx错误页面 - 适合所有人的一个位置规则?

拥有以下nginx vhost配置:

server {
    listen 80;
    listen 443 ssl;
    server_name default;
    root /var/www/default/html;
    error_log /var/www/default/log/error.log;
    access_log /var/www/default/log/access.log;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

    autoindex on;
    index index.html index.php;

    location / {
        try_files $uri $uri/ @php;
    }

    location @php {
        rewrite ^/(.*)/?$ /index.php/$1 last;
    }

    location ~* /(?:[.]|.*[.](?:bak|fla|inc|ini|log|psd|sh|sql|swp)|(?:file|upload)s?/.*[.](?:php)) {
        deny all;
    }

    location ~* [.](?:php) {
        fastcgi_buffer_size             128k;
        fastcgi_buffers                 4 256k;
        fastcgi_busy_buffers_size       256k;
        fastcgi_connect_timeout         30;
        fastcgi_ignore_client_abort     off;
        fastcgi_index                   index.php;
        fastcgi_intercept_errors        on;
        fastcgi_pass                    unix:/var/run/php5-fpm.sock;
        fastcgi_read_timeout            60;
        fastcgi_send_timeout            60;
        fastcgi_split_path_info         ^(.+[.]php)(/.*)$;
        fastcgi_temp_file_write_size    256k;

        include /etc/nginx/fastcgi_params; …
Run Code Online (Sandbox Code Playgroud)

error-handling nginx http-status-code-404

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

CSS标识符的允许字符

什么是(全)有效/允许的字符集为CSS标识字符idclass

是否有可用于验证的正则表达式?浏览器不可知吗?

css regex validation

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

阻止人们通过表单上传恶意PHP文件

我有一个在我的网站上用PHP创建的上传表单,人们可以上传一个zip文件.然后提取zip文件,并将所有文件位置添加到数据库中.上传表单仅供人们上传图片,显然,文件在zip文件夹中我无法检查文件被提取之前要上传的文件.我需要一段代码来删除所有非图像格式的文件(.png,.jpeg等).我真的很担心人们能够上传恶意的php文件,存在很大的安全风险!我还需要注意人们改变php文件的扩展,试图绕过这个安全功能.

这是我使用的原始脚本http://net.tutsplus.com/videos/screencasts/how-to-open-zip-files-with-php/

这是实际提取.zip文件的代码:

function openZip($file_to_open) {
    global $target;

    $zip = new ZipArchive();
    $x = $zip->open($file_to_open);
    if($x === true) {
        $zip->extractTo($target);
        $zip->close();

        unlink($file_to_open);
    } else {
        die("There was a problem. Please try again!");
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢,本.

php security upload zip

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

MySQL - TEXT与CHAR和VARCHAR

阅读这个问题时,我的脑海中浮现出一个疑问:

  • char和varchar最多可以存储255个字符
  • 文本可以存储多达65k字符
  • 字符大小(以字节为单位)是字符数
  • varchar size(以字节为单位)是使用的字符数+ 1

那么TEXT实际占用了多少字节?~65kb或使用的字符数+ 1?

mysql varchar text types char

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

关于HTML 5中的地理位置

现在,谷歌地图可以借助Firefox在街道精确度上精确定位我的位置.

我知道这是HTML 5兼容浏览器的一个新功能,并且通过使用连接的WiFi网络的某种功能来获取位置(我希望我没有做出任何愚蠢的假设).

我打算知道整个过程是如何工作的:

  • 为什么只在HTML 5中?
  • Firefox为何/如何让我与谷歌地图分享我的位置?
  • 可以指望的正常精度是多少?
  • 如何在我的网站中实现此功能?

提前致谢!

firefox html5 google-maps geolocation wifi

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

在PHP中获取对象的实例ID

我刚才在StackOverflow上学到了我们可以得到任何资源的"实例ID",例如:

var_dump(intval(curl_init()));  // int(2)
var_dump(intval(finfo_open())); // int(3)
var_dump(intval(curl_init()));  // int(4)
var_dump(intval(finfo_open())); // int(5)
var_dump(intval(curl_init()));  // int(6)
Run Code Online (Sandbox Code Playgroud)

我需要类似的东西,但适用于类:

class foo {
    public function __construct() {
        ob_start();
        var_dump($this); // object(foo)#INSTANCE_ID (0) { }
        echo preg_replace('~.+#(\d+).+~s', '$1', ob_get_clean());
    }
}

$foo = new foo();  // 1
$foo2 = new foo(); // 2
Run Code Online (Sandbox Code Playgroud)

上面的工作,但我希望更快的解决方案,或至少,一个不涉及输出缓冲区.请注意,这不一定在构造函数中使用,甚至不必在类本身内部使用!

spl_object_hash() 不是我想要的,因为这两个对象产生相同的哈希

以前的问题包含一个错误的spl_object_hash输出示例; 确保两个对象同时存在会产生稍微不同的哈希:

var_dump(spl_object_hash($foo));  // 0000000079e5f3b60000000042b31773
var_dump(spl_object_hash($foo2)); // 0000000079e5f3b50000000042b31773
Run Code Online (Sandbox Code Playgroud)

像资源一样转换为int似乎不适用于对象:

注意:类foo的对象无法转换为int.

有没有使用对象属性快速获取相同输出的方法

此外var_dump(),我通过反复试验发现debug_zval_dump()也输出了对象实例,遗憾的是它还需要输出缓冲,因为它不会返回结果.

php resources class object instance

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