小编Ahm*_*mad的帖子

LC_COLLATE和LC_CTYPE支持postgreSQL中的utf-8

从这个链接http://wiki.postgresql.org/wiki/Todo:Collat​​ehttp://www.postgresql.org/docs/9.1/static/collat​​ion.html.这让我感到困惑.

他们说,utf-8支持取决于操作系统的能力,它的每一个之间输精管LC_COLLATELC_CTYPE选项.

当我使用创建数据库时pdAdmin III,有3个选项,C, Posix and English_United States.1252.有什么不同C, Posix and English_United States.1252

我希望使用所有支持的语言,也就是说unicode utf-8,这似乎不是一个选项.

我必须为选择的值LC_COLLATE,并LC_CTYPE用于创建支持数据库utf-8PostgreSQL 9

postgresql

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

PHP中的助手类

我想创建一个包含cleanArray,split_char,split_word等方法的帮助器类.

它自己的助手类将与许多类一起使用.例如:

Class A will user Helper, Class B, Class C, D, E also user Helper Class
Run Code Online (Sandbox Code Playgroud)

在PHP中编写和使用helper类的最佳方法是什么?

我所知道的是OOP的基本知识,在每个使用Helper类的类中都必须创建一个辅助对象.

$helper = new Helper();
Run Code Online (Sandbox Code Playgroud)

正确或可能是某人可以给我最好的方法.

我还将创建可以使用A,B,C等类的XXX类.

更新: - >修复我在split_word方法中的错误:D

基于Saul,Aram Kocharyan和alex回答,我修改了我的代码,但它不起作用,我不知道为什么.

<?php
class Helper {
    static function split_word($text) {
        $array =  mb_split("\s", preg_replace( "/[^\p{L}|\p{Zs}]/u", " ", $text ));
        return $this->clean_array($array);
    }
    static function split_char($text) {
        return preg_split('/(?<!^)(?!$)/u', mb_strtolower(preg_replace( "/[^\p{L}]/u", "", $text )));
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

我在其他班级使用

<?php
include "Helper.php";
class LanguageDetection {
    public function detectLanguage($text) {
        $arrayOfChar = Helper::split_char($text);
        $words = …
Run Code Online (Sandbox Code Playgroud)

php oop

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

什么是最好的UTF

我对Unicode中的UTF感到困惑.

有UTF-8,UTF-16和UTF-32.

我的问题是:

  1. 什么UTF支持所有Unicode块?

  2. 什么是最好的UTF(性能,大小等),为什么?

  3. 这三个UTF有什么不同?

  4. 什么是字节顺序和字节顺序标记(BOM)?

谢谢

unicode utf-8 utf

11
推荐指数
3
解决办法
1572
查看次数

Postgresql PHP无效字节序列,用于编码UTF8

我有一个简单的SQL语法插入表.我正在使用Postgresql 8.4并且已经将数据库编码设置为UTF8,并将POSIX设置为Collat​​ion和Character类型.

如果我在pgadmin3下运行它,查询就没问题,但如果我在PHP中执行,则会出错.

"Internal Server Error: SQLSTATE[22021]:
Character not in repertoire: 7 ERROR: 
invalid byte sequence for encoding \"UTF8\": 0xd85b\nHINT:
This error can also happen if the byte sequence does not match the encoding expected by the server,
which is controlled by \"client_encoding\"
Run Code Online (Sandbox Code Playgroud)

所以我试图从PHP(PDO)设置NAMES和client_encoding,但仍然有同样的问题

$instance->exec("SET client_encoding = 'UTF8';");
$instance->exec("SET NAMES 'UTF8';");
Run Code Online (Sandbox Code Playgroud)

pg_set_client_encoding($link, "UNICODE");如果我使用本机postgresql驱动程序pg_pconnect,我的工作,但目前我正在使用PDO作为驱动程序.

我也已经设定好了 mb_internal_encoding('UTF-8');

有没有其他方法可以解决这个问题?

此错误仅在我尝试插入非阿拉伯语或日语单词的非ascii单词时出现

php postgresql pdo

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

如何创建强大的api密钥

我想创建一个安全的REST API

例如,如果我看到谷歌API,则基于域生成API KEY.

从这里我有两个问题:

首先,使用单向散列是真/右吗?如果是,如果有人知道散列方法和域,那么他可以生成api密钥并使用它.以及我可以使用的哈希方法/功能?

第二个是,如果客户端如何制作桌面应用程序,他如何生成从桌面访问的API KEY,现在是一个拥有域URL的网站.我的意思是,他们可以生成api密钥,因为没有网址.

有什么好方法吗?,如何创建安全的api以及如何创建api密钥?

顺便说一句,我正在使用PHP

php api api-key

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

语言之间的 Unicode 范围映射

此链接http://www.sil.org/iso639-3/download.asphttp://en.wikipedia.org/wiki/ISO_639:a中列出了 7707 种语言。

而且 Unicode 支持语言的书写系统,但我想知道语言和 unicode 范围之间的映射。

Unicode 范围在此链接中列出:http://www.unicode.org/roadmaps/bmp/

unicode 范围的示例之一:“start”=>“0x0900”、“end”=>“0x097F”、“block_name”=>“Devanagari”(什么语言使用此 unicode 范围?)

有什么文档吗?我需要 unicode 范围支持的完整语言映射。

unicode

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

关于DELETE方法的REST API设计

我正在构建一个REST API.实际上我理解了共同的指导和规则.

但我有DELETE方法的问题,因为我需要在请求中通过正文发送数据,DELETE方法将忽略正文.

如果你问什么数据让我通过DELETE方法将它发送到身体,是一个'url'和一些其他参数.当然'url'在数据库中有id,所以我可以使用DELETE没问题,比如DELETE https://api.example.com/content/url:url_id.但是,通过id,我选择传递它自己和其他一些参数的URL.我的业务逻辑和要求迫使我传递url而不是DELETE方法中的id.

所以在阅读之后,我发现还有一些代理阻塞DELETE和PUT方法.并且HTML表单仅支持GET和POST方法.

我开始思考,更好地只使用GETPOST在我的REST API.所以我可以使用POST进行删除和对象或资源,如下所示:

POST /content/delete/url
Body :
    url : xxxx
    param1 : xxxx
    param2 : xxx
Run Code Online (Sandbox Code Playgroud)

但是在"REST API设计规则手册,O'reilly"中,第18页说

"应该使用HTTP请求方法来指示执行哪个CRUD功能"

以下反模式举例说明了不该做的事情:

GET /deleteUser?id=1234
GET /deleteUser/1234
POST /users/1234/delete
Run Code Online (Sandbox Code Playgroud)

在再次搜索和阅读之后,我找到了一些解决方案

  1. 运用 X-HTTP-Method-Override

  2. 使用api方法名称,如闪烁(api.flickr.com/services/rest/?method=flickr.collections.getInfo)mailchimp(api.mailchimp.com/1.3/?method=campaignDelete)

我想我喜欢解决方案1,使用'X-HTTP-Method-Override'.你怎么看?

谷歌似乎使用X-HTTP-Method-Override,对此https://developers.google.com/gdata/docs/2.0/basics

Flicker和Mailchimp使用方法名称,如解决方案2中所示

php api rest api-design ruby-on-rails

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

带有+(加号)和空格模式的正则表达式

我有下面的句子

"my hooorrrr sssee strongggg"
Run Code Online (Sandbox Code Playgroud)

我的正则表达式是:

"(h+o+r+s+e+) s+t+r+o+n+g+"
Run Code Online (Sandbox Code Playgroud)

当句子是:它只有效/匹配:

"my hooorrrrsssee strongggg"
Run Code Online (Sandbox Code Playgroud)

任何身体都可以帮忙?

无论文字之间的空间如何,我想要匹配.

example : "my h ooo rrr rss    se eee    stttro ngggg"
Run Code Online (Sandbox Code Playgroud)

另一个问题是当某个字符被数字替换时,如下:

"my h 0o0 rrr rs555sss    se ee333    stttr0 ngggg"

a replaced by 4
b replaced by 8
s replaced by 5
i replaced by 1
o replaced by 0
Run Code Online (Sandbox Code Playgroud)

任何身体都可以帮忙?

谢谢

php regex cpu-word

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

PHP preg_match_all限制

我正在使用preg_match_all非常长的模式.

运行代码时,我收到此错误:

警告:preg_match_all():编译失败:正则表达式在偏移量707830处太大

搜索后,我得到了解决,所以我应该增加的价值pcre.backtrack_limit,并pcre.recursion_limitphp.ini

但是在我增加值并重启我的apache之后,它仍然遇到了同样的问题.我的PHP版本是5.3.8

php regex preg-match-all preg-match

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

Paypal自定义变量解决方案

我正在尝试使用paypal作为我网站的付款.

我的网站只出售虚拟货币,如在线游戏中的"钻石".

所以在阅读后我开始使用Express Checkout for Digital Goods,是吗?或者我必须采用其他付款方式?

那我的问题是在使用Express Checkout for Digital Goods时,如何传递自定义变量?

假设我想从我的数据库向paypal api支付user_id,diamond_id和其他一些变量.似乎paypal不支持自定义变量来传递api调用.我想在用户完成付款后,然后Paypal通过我的服务器通过user_id和我通过的其他变量完成付款,这样我就可以轻松了解详细信息.

搜索后我找到了一些解决方案,

  1. 第一个解决方案是存储"TOKEN"(由"SetExpressCheckout"方法生成)和我的自定义变量,它属于数据库中的TOKEN,然后付款完成后,paypal将通知我的服务器之前保存的相同TOKEN.所以我将根据TOKEN进行查询.
  2. 第二个解决方案是在RETURNURL变量中使用get样式http://www.mysite.com/successpayment.php?user_id=13&diamond_id=88所以我很容易抓住GET变量.

哪种解决方案是对的?有什么解决方案吗?以及如何确保付款确认,我的意思是,如果有人知道并破解我的返回.

谢谢

php paypal paypal-sandbox paypal-ipn

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

在Windows上配置PHP和PostgreSQL

我正在手动安装PHP,Apache和PostgreSQL

PHP和Apache现在已连接,但PostgreSQL未连接到PHP.

我使用phpinfo()进行测试;

我也在php.ini中配置如下:

extension=php_pgsql.dll
extension=php_pdo_pgsql.dll
Run Code Online (Sandbox Code Playgroud)

但为什么它不起作用.

谢谢

php postgresql

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

plpgsql中的语法错误

我在PostgreSQL中有一个存储过程

CREATE OR REPLACE FUNCTION show_senti_lang_setting(IN _senti_id bigint)
RETURNS TABLE(lang_code character, native_name character varying, is_active boolean) AS
$BODY$
BEGIN
RETURN QUERY 
    SELECT
        l.lang_code,
        l.native_name,
        (CASE WHEN s.senti_id is NULL THEN FALSE
            ELSE TRUE
        END) is_active
    FROM
        language l
    LEFT JOIN senti_lang s
    ON s.lang_code=l.lang_code
    AND s.senti_id=_senti_id;
END;
$BODY$
LANGUAGE plpgsql VOLATILE STRICT;
Run Code Online (Sandbox Code Playgroud)

错误是:

ERROR:  syntax error at or near "$1"
LINE 1: ...HEN s.senti_id is NULL THEN FALSE ELSE TRUE END)  $1  FROM l...
                                                         ^
QUERY:   SELECT l.lang_code, l.native_name, (CASE …
Run Code Online (Sandbox Code Playgroud)

sql postgresql exists plpgsql postgresql-8.4

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