小编Jas*_*vis的帖子

什么是PHP的serialize()函数?

我刚刚了解了这些serialize()unserialize()功能.这有什么用途?我知道人们将事物序列化到数据库中.你能给我一些有用的示例用法吗?

我也看到了javascript中的序列化代码,这是一样的吗?javascript中的序列化字符串可以用php反序列化unserialize()吗?

php serialization

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

使用PHP检测图像中的主要颜色

我试图复制Dribbble.com检测图像中主要颜色的功能.在下图中,您可以看到Dribbble.com的屏幕截图,其中显示了左侧图像中的8种主要颜色.这是图片中的实际页面http://dribbble.com/shots/528033-Fresh-Easy?list=following

我需要能够在PHP中执行此操作,一旦我获得了我需要的颜色,我将它们保存到数据库中,因此不需要在每个页面加载时运行处理.

在对如何从图像中获取这些颜色的一些研究之后,有些人说你只是逐个像素地检查图像,然后保存最多出现的颜色.其他人说它还有更多,并且获得最常见的颜色不会产生预期的效果.他们说你需要量化图像/颜色(此时我迷失了).

在下面的图像中,下面的Dribble镜头是一个Javascript库,可以执行相同的操作,可以在此处查看该页面http://lokeshdhakar.com/projects/color-thief/

查看该页面的来源,我可以看到有一个名为Javascript的文件quantize.js,结果非常好.所以我希望能够使用PHP和GD/ImageMagick来完成Javascript库的功能

在此输入图像描述


我发现这个函数将使用PHP返回颜色和计数,但结果与上面的Javascript版本和Dribble结果不同

/**
 * Returns the colors of the image in an array, ordered in descending order, where the keys are the colors, and the values are the count of the color.
 *
 * @return array
 */
function Get_Color()
{
    if (isset($this->image))
    {
        $PREVIEW_WIDTH    = 150;  //WE HAVE TO RESIZE THE IMAGE, BECAUSE WE ONLY NEED THE MOST SIGNIFICANT COLORS.
        $PREVIEW_HEIGHT   = 150;
        $size = GetImageSize($this->image);
        $scale=1;
        if ($size[0]>0)
        $scale = min($PREVIEW_WIDTH/$size[0], …
Run Code Online (Sandbox Code Playgroud)

php gd imagemagick image-processing

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

如何避免获取此列错误列错误列名称列错误?

如何避免获取此MySQL错误列topic_id的列说明符不正确

MySQL错误......

#1063 - Incorrect column specifier for column 'topic_id'
Run Code Online (Sandbox Code Playgroud)

SQL架构......

CREATE TABLE discussion_topics (
    topic_id char(36) NOT NULL AUTO_INCREMENT,
    project_id char(36) NOT NULL,
    topic_subject VARCHAR(255) NOT NULL,
    topic_content TEXT default NULL,
    date_created DATETIME NOT NULL,
    date_last_post DATETIME NOT NULL,
    created_by_user_id char(36) NOT NULL,
    last_post_user_id char(36) NOT NULL,
    posts_count char(36) default NULL,
    PRIMARY KEY (topic_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Run Code Online (Sandbox Code Playgroud)

mysql sql ddl auto-increment

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

如何在Windows上使用命令行访问PHP?

我试图学习如何从命令行(CLI)访问PHP脚本

以下是我尝试的图片,请帮忙.我正在运行Windows 7

CLI

php command-line command-line-interface

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

#!/ usr/bin/env是否需要从命令行运行PHP?

通常,当我看到要从命令行运行的PHP时,它会在这个#!/usr/bin/env php文件的顶部有这一行...

#!/usr/bin/env php
<?php
    // code
?>
Run Code Online (Sandbox Code Playgroud)

我想知道这是仅仅意味着文件在Linux/Unix系统上运行还是在Windows上运行时需要?

php command-line command-line-interface

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

简单的PHP isset测试

以下这个似乎没有用,我怎么想,虽然$ _GET ['friendid'] = 55它返回NULL

<?PHP

$_GET['friendid'] = 55;

$friendid = (!isset($_GET['friendid'])) ? $_GET['friendid'] : 'empty';

echo $friendid;
exit;

?>
Run Code Online (Sandbox Code Playgroud)

php ternary-operator

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

在PHP中使用语言文件最有效的方法?

问题更新而不是提出新问题......

我真的想在我建立的社交网站上提供除英语之外的一些替代语言,这将是我第一次进行任何语言翻译,所以请耐心等待.
我正在研究,所以我很感兴趣并且对这些想法持开放态度,我已经有了很多问题.

1)
i18n是什么意思,我在研究SO上的语言翻译时经常看到它?

2)
大多数人说使用gettext PHP有扩展或支持它,
我一直在研究它,我对它有一个基本的了解,据我所知,这条路线需要做很多额外的工作,
我意味着编码我的网站使用它的功能,即; _('你好世界我现在用英语')或者gettext('hello world我现在用英语')没问题,因为我去的任何路线都需要这样.
但是你必须在你的服务器上安装gettext并让它工作,
然后使用一些特殊的编辑器创建特殊的文件并编译它们我认为呢?

听起来很痛苦,我知道这应该是最好的路线,好像每个人都说是这样.
那么有人可以告诉我为什么这是要走的路线?

3)
我真的很喜欢这种方法的简单性,只需构建一个语言数组并在类似下面的例子的函数中调用你需要的短语,然后你就可以只包含一个带有相应语言数组的文件.

我真正想知道的是,与使用gettext相比,这对于高流量和相当大的网站来说是不是更好的性能方法吗?如果是这样,你能解释为什么好吗?

<?PHP
//Have seperate language files for each language I add, this would be english file
function lang($phrase){
    static $lang = array(
        'NO_PHOTO' => 'No photo\'s available',
        'NEW_MEMBER' => 'This user is new'
    );
    return $lang[$phrase];
}
//Then in application where there is text from the site and not from users I would do something like this
echo …
Run Code Online (Sandbox Code Playgroud)

php multiple-languages

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

找不到带有PHP命名空间的Class

我之前发布了一些关于在PHP中使用命名空间的问题以及我得到的问题,我在下面的示例代码应该正常工作.

但是当我尝试在PHP中使用Namespace时,我遇到了错误.以下是运行下面的代码时出现的第一个错误...

Fatal error: Class 'Controller' not found in E:\Controllers\testing.php on line 6
Run Code Online (Sandbox Code Playgroud)

E:\ Controller\testing.php文件

<?php
use \Controller;

include('testcontroller.php');

$controller = new Controller;
$controller->show();
?>
Run Code Online (Sandbox Code Playgroud)

E:\ Controller\testcontroller.php文件

<?php
use \Library\Registry;

namespace Controller
{
    class Controller
    {
        public $registry;

        function __construct()
        {
            include('E:\Library\Registry.class.php');
            $this->registry = new Registry;
        }

        function show()
        {
            echo $this->registry;
            echo '<br>Registry was ran inside testcontroller.php<br>';
        }
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

E:\ Library\Registry.class.php文件

<?php
namespace Library\Registry
{
    class Registry
    {
        function __construct()
        {
            return 'Registry.class.php Constructor was ran';
        } …
Run Code Online (Sandbox Code Playgroud)

php namespaces

26
推荐指数
3
解决办法
8万
查看次数

会话VS文件VS Memcache for PHP中的缓存?

我有一个社交网络

  • users表大约有60,000行

  • 朋友表约有100万行(用于确定谁是你的
    朋友)

我想做一个朋友饲料,墙,无论你喜欢什么叫它,它会显示用户状态贴(推特类型的帖子)之类的东西,它会显示一些不同的项目但是一开始它只是朋友状态和也许博客文章.

基本上,您只会看到使用您朋友列表中的用户ID发布的内容.

我一直在努力想出最好的方法并且没有走得太远,但这是我最新的想法.

目前要建立这个饲料,我必须

  1. 获取大朋友桌上的朋友ID列表

  2. 从上面的结果中获取朋友ID中的流数据

  3. 加入用户表以获取发布者图片URL和用户名

  4. 然后加入评论表以获取在Feed项目上发布的评论

这是构建该Feed的一项重大任务

到目前为止,我有3个想法,这是你的帮助可以进来的地方.

Memcache选项:

  1. 当用户登录到站点时,使用memcache并将用户友好列表缓存为数组,当用户批准新朋友请求将某个朋友添加到该列表时,它将重建那里的缓存.
  2. 除了刚到那里的朋友,我可以在那里保存朋友图片网址和用户名,这将通过在构建好友Feed时消除此查询来再次加快速度.

文件缓存选项:

  1. 执行与memcache选项相同但将此数据作为数组保存到缓存文件而不是内存,然后将此缓存文件包含在页面中.

  2. 我不确定哪种是性能的最佳方法我理解memcache将所有内容存储在内存中所以有两万个可以使用大量内存和文件缓存的朋友的朋友只有在用户需要它时才将它放在内存中如果我是正确.此外,如果我使用文件方法,当用户退出网站时,我会删除那里的缓存文件,因此缓存文件夹永远不会是太大的文件

会话缓存选项:

  1. 与上面的文件缓存相同,我只是意识到会话数据被保存到文件中,这样就不会使它成为缓存吗?

请给我你的意见或任何建议或信息,因为我对缓存知之甚少,我已经阅读了很多,但有时其他人的想法有很多帮助

php session memcached caching

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

PHP中的URL友好用户名?

在我的PHP站点上,当前用户使用电子邮件地址和密码登录.我想添加一个用户名,他们设置的用户名将是唯一的,他们无法更改.我想知道如何使这个名称没有空格并在URL中工作,所以我可以使用用户名链接到配置文件和其他东西.如果用户名中有空格,则应添加下划线jason_davis.我不确定最好的方法吗?

php string friendly-url slug

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