小编Str*_*rae的帖子

phpMailer php类在哪里等效于Python?

我是python的新手..实际上,我正在尝试使用python发送精选电子邮件:html正文,文本替代正文和附件.

所以,我已经找到了这个教程并使用gmail身份验证进行了调整(这里的教程)

我有atm的代码是:

def createhtmlmail (html, text, subject):
"""Create a mime-message that will render HTML in popular
  MUAs, text in better ones"""
import MimeWriter
import mimetools
import cStringIO
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
import os

out = cStringIO.StringIO() # output buffer for our message 
htmlin = cStringIO.StringIO(html)
txtin = cStringIO.StringIO(text)

writer = MimeWriter.MimeWriter(out)
#
# set up some basic headers... …
Run Code Online (Sandbox Code Playgroud)

python email phpmailer

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

Postgresql和PHP:在多用户应用程序中,currval是一种检索最后一行插入id的有效方法吗?

我想知道我用来检索postgresql表中插入的最后一行的id的方式是有效的..

显然,它可以工作,但是当我有许多用户同时在同一个表中添加行时,引用串行序列currval值可能会有问题.

我的实际方式是:

$pgConnection = pg_connect('host=127.0.0.1 dbname=test user=myuser password=xxxxx')or die('cant connect');

$insert = pg_query("INSERT INTO customer (name) VALUES ('blabla')");
$last_id_query = pg_query("SELECT currval('customer_id_seq')");
$last_id_results = pg_fetch_assoc($last_id_query);
print_r($last_id_results);
pg_close($pgConnection);
Run Code Online (Sandbox Code Playgroud)

好吧,它只是一个测试atm.但无论如何,我可以用这种方式看到3个问题:

  1. 引用customer_id_seq,如果两个用户在同一时间做同样的事情,可能会发生他们都从那个方式获得相同的id ......或者不是?
  2. 必须知道表的序列名称.知道pg_get_serial_sequence不适用于我(在postgresql上我是新手,可能是配置问题)

有什么建议/更好的方法吗?

ps:我不能使用PDO,因为似乎缺少事务保存点; 我不会使用zend,最后,我更喜欢使用php pg_*函数(也许我最终会构建我的类)

编辑:

@SpliFF(他们删除了他的回答):这会更好吗?

$pgConnection = pg_connect('host=127.0.0.1 dbname=test user=myuser password=xxxxx')or die('cant connect');

pg_query("BEGIN");

$insert = pg_query("INSERT INTO customer (name) VALUES ('blabla')");

$last_id_query = pg_query("SELECT currval('customer_id_seq')");

$last_id_results = pg_fetch_assoc($last_id_query);

print_r($last_id_results);

//do somethings with the new customer id

pg_query("COMMIT");

pg_close($pgConnection);
Run Code Online (Sandbox Code Playgroud)

php postgresql insert-id

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

Postgresql:在使用预准备语句插入和更新行时使用'NULL'值

有时我需要在表中插入一些空值,或更新它们将值设置为NULL.

我这个不能做PostgreSQL文档在其他地方见过,但可以tricket使用默认值:

pg_query("INSERT INTO my_table (col_a, col_b) VALUES ('whatever', default)
Run Code Online (Sandbox Code Playgroud)

ps:我知道在这个例子中我会得到相同的结果

pg_query("INSERT INTO my_table (col_a) VALUES ('whatever')
Run Code Online (Sandbox Code Playgroud)

但问题来自准备好的陈述:

pg_prepare($pgconn, 'insert_null_val', "INSERT INTO my_table (col_a, col_b) VALUES ($1, default)");
pg_exec($pgconn, 'insert_null_val', array('whatever'));
//this works, but
pg_prepare($pgconn, 'insert_null_val', "INSERT INTO my_table (col_a, col_b) VALUES ($1, $2)");
pg_exec($pgconn, 'insert_null_val', array('whatever', 'NULL'));
//insert into the table the string 'NULL'.
//instead using array('whatever', '') it assume the col_b as empty value, not NULL.
Run Code Online (Sandbox Code Playgroud)

更新查询也会出现同样的问题.

我认为有一个解决方案,因为pgmyadmin可以做到(或者看起来像它可以),并且我写的是php(我不认为它不会使用准备好的语句)

如果你想知道为什么我需要在我的表中使用空值,让我举一个例子(也许有一个比null值更好的方法):假​​设我有用户表,并且电子邮件col:这个可以为空,但是是唯一的索引.2空电子邮件是相同的并且违反了唯一约束,而2个NULL值不相等并且可以共存.

php postgresql null prepared-statement

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

APC vs pecl uploadprogress

在drupal的状态报告页面中,我通常会找到此消息(全新安装):

您的服务器能够显示文件上载进度,但没有所需的库.建议安装PECL uploadprogress库(首选)或安装APC.

但我永远无法理解为什么它的首选PECL上传进度库APC,这就是我今天的问题.

pecl uploadprogress更快,占用更少的系统资源,还是更容易安装/配置/使用APC?

任何人都有关于为何比APC更受欢迎的想法?(googlin周围APC vs pecl uploadprogress没有返回没有用)

php upload apc pecl progress-bar

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

PostgreSQL:每年创建新/重复现有表的最佳方式

提到这个问题,我决定每年复制表格,用年份数据创建表格,例如:

orders_2008
orders_2009
orders_2010
etc...
Run Code Online (Sandbox Code Playgroud)

好吧,我知道速度问题可能只用每个元素的2个表来解决,比如orders_history和order_actual,但我认为一旦编写了处理程序代码,就没有区别......只有很多表.

那些桌子甚至会有一些带外键的孩子; 例如,orders_2008将具有子items_2008:

CREATE TABLE orders_2008 (
    id serial NOT NULL,
    code character(5),
    customer text
);

ALTER TABLE ONLY orders_2008
    ADD CONSTRAINT orders_2008_pkey PRIMARY KEY (id);

CREATE TABLE items_2008 (
    id serial NOT NULL,
    order_id integer,
    item_name text,
    price money
);

ALTER TABLE ONLY items_2008
    ADD CONSTRAINT items_2008_pkey PRIMARY KEY (id);

ALTER TABLE ONLY items_2008
    ADD CONSTRAINT "$1" FOREIGN KEY (order_id) REFERENCES orders_2008(id) ON DELETE CASCADE;
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:您认为每个1月1日复制这些表的最佳方式是什么,当然,保持表依赖性?

一个PHP/Python脚本,在查询后查询,重建新年的结构(由cron作业调用)?PostgreSQL的功能可以这样使用吗?如果是的话,如何(一个小例子会很好)

其实我是第一种方式(包含结构的.sql文件,以及由cronjob加载的php/python脚本重建结构),但我想知道这是否是最好的方法.

编辑:我已经看到了pgsql函数CREATE TABLE LIKE,但是必须在第二次添加foreigns键...或者它将保持新表的旧参考.

php database postgresql

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

Drupal VS Zikula

我是drupal的新手(刚刚用它完成了我的第一个网站),我发现它非常简单和强大.

最近,我被要求与Zikula建立一个社区.

他们更喜欢使用zikula,因为它是phpnuke的'进化',这是他们目前使用的cms(我已经'重新安排并重建'它).

而且,我想学习并使用1厘米.

那么,drupal和zikula之间的主要区别是什么?一个和另一个有什么优缺点?

我为什么要选择Drupal或Zikula?

ps:我知道大多数时候答案是"它完全取决于你的需求",但这应该是一个普遍的问题

php drupal content-management-system zikula

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

Regexp:如何匹配不属于模式的每一个东西?

我想匹配一个与给定模式匹配的字符串中的所有内容; 例如[a-z].

鉴于字符串abc4jkf8 4à3in,我需要匹配48 4à3.

我试过([a-z])+(?![a-z])但这与我需要的完全相反.使用上面的字符串,此正则表达式匹配abcjkfin.

有任何想法吗?

php regex

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

更新Drupal多站点安装的最佳实践

我将安装一个drupal多站点行为:公共代码库和每个站点一个数据库.

我们的想法是保留/sites/all/modules/文件夹中所有站点使用的模块,以及仅由/sites/example1.com/文件夹中的一个站点使用的主题和模块.

我已经阅读了10分钟多站点配置,第一次尝试都顺利,但现在我有一些问题.

当一些'常见'模块将被更新时,我只需要更新/sites/all/modules/modulename文件夹,这没关系,但是当模块的更新需要更新数据库时该怎么办?

我必须登录并运行update.php每个站点,或者有一个自动程序,以便更新使用该模块的站点的所有数据库?

我想更新模块的脚本但保持模块的db表不变会导致一些问题.

如何在更新模块的同时将所有网站置于"离线"模式?

php drupal

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

从类自己的方法告诉继承方法的最佳实践

我在一个项目中,我有一个扩展ADODB_base类的数据库类 - 我的目标是用ad-hoc数据库包装器层类替换ADODB_class.

该班有约200种方法; 确定从ADODB_class继承的方法(我必须在自定义包装器中使用相同的名称/ args重新创建以避免重构中的大头条)以及它自己的方法,这可能是一个很好的做法?

编辑:示例代码:

class Postgres extends ADODB_base{
    //[...]
    // This method exist in Postgres class but not in ADODB_base,
    // let's say this is a Postgres own method.
    public function do_something()
    {
        //[...]
        // query() method belongs to ADODB_base class, so i need to create it
        // in my wrapper too, keeping the name and the args.
        $this->query([...]);
    }
    //[...]
}
Run Code Online (Sandbox Code Playgroud)

我的目标是找到最好的做法,告诉它do_something()属于Postgres,而query()属于ADODB_base,而不改变所有使用Postgres …

php oop inheritance refactoring

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

从SVG创建Paper.js PathItem

免责声明:这是我对矢量图形的第一种方法;)

我正在写一个网络应用程序,用户上传一些图像(组成一个图纸),他应该上传一个矢量图像(SVG)作为'掩码'.

我正在使用Paper.js库.

因此,我的目标是阅读SVG并创建一个paper.js PathItem来表示它(然后添加fillcolor,无论如何).

我尝试了一个简单的形状:

在此输入图像描述

在SVG中看起来像:

// Adobe Illustrator
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="100px" height="100px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve">
<polygon fill="none" stroke="#000000" points="48.771,12.137 59.323,33.518 82.919,36.947 65.845,53.59 69.875,77.09 48.771,65.994 
    27.667,77.09 31.697,53.59 14.623,36.947 38.219,33.518 "/>
</svg>


// Inkscape pure svg
<?xml version="1.0" encoding="UTF-8" standalone="no"?> …
Run Code Online (Sandbox Code Playgroud)

javascript svg vector-graphics html5-canvas paperjs

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

实现静态类继承的最佳实践?(单例)

来自 PHP 手册:

[...] 静态方法调用在编译时解析。当使用显式类名时,该方法已被完全标识,并且不适用继承规则。如果调用是由 self 完成的,则 self 会被转换为当前类,即代码所属的类。这里也没有继承规则适用[...]

..所以我正在寻找一种使用静态单例模拟标准oop 继承方法。

代码解释得更好:

// Normal inheritance: my goal.
class Foo{
    public function test(){
        echo "Foo->test()\n";
    }
}

class Bar extends Foo{
    public function other_test()
    {
        echo "Bar->other_test()\n";
    }
}


$obj = new Bar();
echo get_class($obj) . "\n";
$obj->test();
$obj->other_test();
/*
 Output:
Bar
Foo->test()
Bar->other_test()
*/


// How i would love to do:
class Foo2{
    public static function test2()
    {
        echo "Foo2::test2()\n";
    }

    // Singleton?
    public static $_instance; …
Run Code Online (Sandbox Code Playgroud)

php oop singleton static design-patterns

-1
推荐指数
1
解决办法
1875
查看次数