小编med*_*iev的帖子

使用gettext在PHP中添加对i18n的支持?

我一直听说过gettext - 我知道这是基于提供的字符串参数查找翻译的某种unix命令,然后生成一个.pot文件,但有人可以用外行的方式向我解释如何处理这个问题.一个网络框架?

我可能会考虑一些已建立的框架是如何做到的,但外行人的解释会有所帮助,因为它可能有助于在我真正钻研事物以提供我自己的解决方案之前更清楚一点.

php frameworks gettext internationalization

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

SQL:只将新行/记录插入表中?

我正在定期解析json feed并且只需要从feed中插入最新用户并忽略现有用户.

我认为我需要的是ON DUPLICATE KEY UPDATEINSERT IGNORE基于一些搜索,但我不太确定我问的是什么 - 例如:

users
1     John
2     Bob
Run Code Online (Sandbox Code Playgroud)

部分JSON:

{ userid:1, name:'John' },
{ userid:2, name:'Bob' },
{ userid:3, name:'Jeff' }
Run Code Online (Sandbox Code Playgroud)

从这个饲料我只想插入杰夫.我可以通过所有用户做一个简单的循环,并做一个简单的SELECT查询,看看用户id是否已经在表中,如果不是我做INSERT,但我怀疑它不是一个有效和实用的方法.

顺便说一句,如果有人愿意提供具体的答案,我正在使用Zend_Db进行数据库交互:)我不介意一般的战略解决方案.

php mysql sql zend-framework zend-db

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

SPL自动加载最佳实践

在我在服务器端的include_path中,我在'/ usr/share/pear /'中引用了一个pear目录.在我的应用程序中,我包含来自公共库的文件,位于'/ usr/share/pear/library /'中require_once 'library/file.php'.

我最近开始使用spl自动加载器,我注意到在加载器函数中你必须确定包含文件的逻辑.我这样做的第一种方法是尝试包含一个文件并用它@来抑制它以查看它是否会失败,例如,@include 'library/file.php'我认为主要是因为我读了很多关于@不良做法的事情我决定通过爆炸get_include_path来自己手动完成工作.PATH_SEPARATOR并查看目录是否是我想要的目录,然后执行file_exists并包含它.

像这样:

function classLoader( $class ) {
    $paths = explode( PATH_SEPARATOR, get_include_path() );
    $file = SITE_PATH . 'classes' . DS . $class . '.Class.php';
    if ( file_exists( $file) == false ) 
    {
        $exists = false;
        foreach ( $paths as $path ) 
        {
            $tmp = $path . DS . 'library' . DS . 'classes' . DS . $class . '.Class.php'; …
Run Code Online (Sandbox Code Playgroud)

php spl autoloader spl-autoloader

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

Zend:为产品表创建模型

我试图创建两种型号,productsproduct_manufacturers让我可以在厂家以及产品的拉动,如果有必要编辑它们在管理,和通常CRUD的东西.这是表格的架构(如果您有任何建议,则不会最终确定).

CREATE TABLE `product_manufacturers` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `manufacturer_name` varchar(100) default NULL,
  `active` tinyint(1) default '1',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8

CREATE TABLE `products` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `product_name` varchar(100) default NULL,
  `manufacturer_id` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud)

示例数据:

(产品) -

id product_name manufacturer_id
1  iPod Nano 4g 1
Run Code Online (Sandbox Code Playgroud)

(product_manufacturers) -

id manufacturer_name active
1  Apple             1
Run Code Online (Sandbox Code Playgroud)

我已经创建了两个模型,但是我在基于活跃的产品制造商推出产品时遇到了麻烦(是的,我正在使用模型自动加载器).

protected …
Run Code Online (Sandbox Code Playgroud)

php mysql zend-framework

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

在PHP> = 4.3.0中使用静态属性?

免责声明:是的,我被迫支持PHP 4.3.0.我知道它已经死了.不,我不能升级它,因为我正在处理多个服务器,其中一些我没有su访问权限.

好吧,因为我不能使用,self::因为它是PHP5特定的,我应该如何在PHP4类中实现静态?到目前为止,我的研究似乎我至少可以使用static关键字除了只在函数上下文中,我已经看到另一种方法使用$ _GLOBALS,但我不认为我将使用它.

就这样我们在同一页面上我需要访问4中的这些PHP5静态:

public static $_monthTable = array(
     31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
public static $_yearTable = array(
     1970 => 0,            1960 => -315619200);
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经提出了我自己的函数,基本上设置一个静态变量,如果找不到,我将所有静态属性硬编码到其中.但是,我不完全确定如何在同一类中的anther方法中引用这些静态,假设它没有被实例化并且没有触发构造函数,这意味着我无法使用$this.

class DateClass {

    function statics( $name = null ) {

        static $statics = array();

        if ( count( $statics ) == 0 ) {
            $statics['months'] = array(
                'Jan', 'Feb'
            );
        }

        if ( $name != null && array_key_exists($name, $statics ) ) …
Run Code Online (Sandbox Code Playgroud)

php php4 static-members

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

将"Toxi"方式规范化是否真的值得?(3NF)

我正处于数据库设计的早期阶段,所以还没有最终结果,我正在使用"TOXI"3表设计作为我的线程,它有可选标签,但我不禁觉得加入是不是真的有必要,也许我需要依靠我的posts表中的一个简单的标签列,我可以在其中存储类似的varchar <tag>, <secondTag>.

所以回顾一下:

  • 是否值得在2个标签表上额外左连接的麻烦,而不是在我的posts表中只有一个标签列.
  • 有没有办法可以优化我的查询?

架构

CREATE TABLE `posts` (
    `post_id` INT UNSIGNED PRIMARY AUTO_INCREMENT,
    `post_name` VARCHAR(255)
) Engine=InnoDB;

CREATE TABLE `post_tags` (
    `tag_id` INT UNSIGNED PRIMARY AUTO_INCREMENT,
    `tag_name` VARCHAR(255)
) Engine=InnoDB;

CREATE TABLE `post_tags_map` (
    `map_id` INT PRIMARY AUTO_INCREMENT,
    `post_id` INT NOT NULL,
    `tags_id` INT NOT NULL,
    FOREIGN KEY `post_id` REFERENCES `posts` (`post_id`),
    FOREIGN KEY `post_id` REFERENCES `post_tags` (`tag_id`)
) Engine=InnoDB;
Run Code Online (Sandbox Code Playgroud)

样本数据

INSERT INTO `posts` (`post_id`, `post_name`)
  VALUES
(1, 'test');

INSERT INTO `post_tags` …
Run Code Online (Sandbox Code Playgroud)

mysql sql optimization normalization

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

通过多步骤表格传递信用卡号码的最安全方式?

在第3步,我有一张接受信用卡的表格,第4步重新打印信息,包括信用卡的最后4位数字,第5步我需要知道完整的CC#来处理它并通过我的https发送连接到第三方供应商 - 我应该通过隐藏输入存储它还是$_SESSION因此我可以在第3步和第5步之间访问它?

仅供参考:我的整个网站已经过https'd.

php security credit-card

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

Django最好的和最新的社交认证插件是什么?

有很多它们在那里,但很多都是旧的 - 有人可以推荐他们最近实施的插件吗?

我唯一关心的是gmail/yahoo,facebook和twitter是可选的.

编辑:要解决这个问题,

关于使用django socialauth的困惑

^作者说有更新的叉子,那些是我正在寻找的.

openid django socialauth

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

我想在公司数据库中存储公制单位 - 我应该使用哪种数据类型?

我想存储高度,最终将显示在Imperial/US(例如6英尺4)的数据库中,该数据库当前是MySQL(我计划迁移到PostgreSQL).

我想知道哪种单元对这种类型的存储有好处,我应该使用哪种列类型?我在考虑厘米/公制系统和一些数字列类型,但如果有人可以提供洞察力,那就太棒了.

mysql postgresql database-design

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

如何在Slim内部的Twig模板中添加自定义过滤器?

使用http://twig.sensiolabs.org/doc/advanced.html#creating-an-extension中的示例:在我Slim创建视图的主文件中:

$filter = new Twig_SimpleFilter( 'stripslashes', function ( $string ) { 
    return stripslashes( $string );
});

$loader = new \Twig_Loader_String();
$twig = new Twig_Environment($loader);
$twig->addFilter($filter);

$app->view($twig);

$app->view()->setData( array(
    'nav' => $nav,
    'sidenav' => $sidenav,
));
Run Code Online (Sandbox Code Playgroud)

结果:Call to undefined method Twig_Environment::appendData().

以各种方式尝试,例如:

$app->view(new \Slim\Views\Twig());
$app->view->parserExtensions = array(
    new \Slim\Views\TwigExtension(),
);

$app->view->addFilter($filter);
Run Code Online (Sandbox Code Playgroud)

但我只是不明白它应该如何运作.

php slim twig

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