小编pb1*_*149的帖子

带有s //的Perl Regex'e'(eval)修饰符

我在理解这个简单使用/ e正则表达式修饰符时遇到了一些麻烦.

my $var = 'testing';
$_ = 'In this string we are $var the "e" modifier.';

s/(\$\w+)/$1/ee;

print;
Run Code Online (Sandbox Code Playgroud)

返回:"在这个字符串中,我们正在测试"e"修饰符."

我不明白为什么需要两个'e'修饰符.据我所知,$ 1应该从字符串中捕获'$ var',然后单个'e'修饰符应该能够用它的值替换变量.但是我必须误解一些东西,因为只用一个'e'修饰符来尝试上面的代码并不会明显地替换字符串中的任何内容.

请问这么简单的问题!

谢谢.

regex perl modifier

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

Paypal Express - 添加折扣

我目前正在向Paypal Express发布常规交易,并且没有错误地到达网关.

我现在想配置我的购物车向网关发送折扣.我的第一个想法是修改发送到网关的"AMT"值.然而,似乎贝宝通过计算总的验证"AMT"字段ITEMAMT,TAXAMT并且SHIPPINGAMT字段,以确保总不变:

[L_AMT0] => 49.99
[L_NUMBER0] => 3706{3}8
[L_QTY0] => 1
[L_TAXAMT0] => 0.00
[ITEMAMT] => 49.99
[TAXAMT] => 0
[SHIPPINGAMT] => 14.95
[AMT] => 64.94
Run Code Online (Sandbox Code Playgroud)

我向Paypal发送了多少折扣?我查看了我能找到的文件,没有运气; 关于SO的类似问题也没有帮助.谢谢.

编辑:我注意到我可以穿过田野SHIPDISCAMT.我不知道这是否会让我做我需要的东西 - 我仍然会收到错误,表明soemthing'不匹配'.

php payment paypal payment-gateway e-commerce

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

Mod Rewrite Regex - 多个负面前瞻

我目前有工作Mod Rewrite Regex:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*/)?((?:cmd)[^/]*)/((?!(?:cmd)[.+]*)(.+)) $1?$2=$3&%1 [L]
Run Code Online (Sandbox Code Playgroud)

该正则表达式采用以下URL并将其转换为下面的URL:

www.site.com/cmd1/param/cmd2/param2/stillparam2 把它变成 www.site.com/index.php?cmd1=param&cmd2=param2/stillparam2

这工作正常,但我还想创建另一个负前瞻断言,以确保URL块 - 即一个/texthere/参数 - 不包括下划线.一个无效的字符串可能类似于:www.test.com/cmd/thing/getparam_valuehere; 正则表达式应该将其解析cmd/thing为键和值对,并忽略字符串的其余部分.然后我还会写另一个RewriteRule来将URL的下划线作为另一个URL参数添加到其中.将发生以下URL转换:

www.test.com/cmd/param1/cmd2/directory/param2/sortorder_5
www.test.com?cmd=param1&cmd2=directory/param2&sortorder=5
Run Code Online (Sandbox Code Playgroud)

如果我不够清楚,请告诉我.任何帮助都会很棒.

注意:我已经尝试使用嵌套在已经存在的内容中的负向前瞻(?!(?!))- 并尝试使用|两个负面的前瞻,但两种解决方案都不起作用.我认为也许其他东西更根本错了?

谢谢大家.

编辑:我也尝试了以下 - 我真的认为这会起作用(但很明显,没有!)

RewriteRule ^(.*/)?((?:cmd)[^/]*)/((?!(?:cmd)[.+]*)(?![.+]*(?:_)[.+]*)(.+)) $1?$2=$3&%1 [L]
Run Code Online (Sandbox Code Playgroud)

这样做如下:

www.test.com/cmd/param1/sortorder_1/ 翻译成 www.test.com?cmd=param1/sortorder_1/

什么时候应该变成:www.test.com?cmd=param1&sortorder=2/.翻译/sortorder_2/成规则&sortorder=2尚未创建,但你可以希望看到我的意思).

php regex apache mod-rewrite negative-lookahead

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

PHP Gettext - 没有翻译

我试图使用PHP gettext扩展来翻译一些字符串.所有函数似乎都返回正确的值,但只调用gettext()/ _()返回原始字符串.PO/MO文件似乎正确,我相信我已正确设置目录.我在Windows上运行带有PHP 5.3.10的WAMP服务器(也尝试运行5.3.4和5.3.8,因为我有安装).

首先,请看/new2/www/index.php:

$locale = 'esn'; # returns Spanish_Spain.1252 in var dump

putenv("LC_ALL={$locale}"); // Returns TRUE
setlocale(LC_ALL, $locale); // Returns 'Spanish_Spain.1252'

$domain = 'messages';
bindtextdomain($domain, './locale'); // Returns C:\wamp\www\new2\www\locale
bind_textdomain_codeset($domain, 'UTF-8'); // Returns UTF-8
textdomain($domain); // Returns'messages'

print gettext("In the dashboard"); // Prints the original text, not the translation.
exit;
Run Code Online (Sandbox Code Playgroud)

我创建了以下文件结构:

www/new2/www/locale/Spanish_Spain.1252/LC_MESSAGES/messages.mo
Run Code Online (Sandbox Code Playgroud)

我也曾尝试更换Spanish_Spain.1252有:es_ES,esn,esp,Spanish,和Spanish_Spain.

用于生成MO的PO文件是这样的(仅给出相关条目):

#: C:\wamp\www\new2/www/index.php:76
msgid "In the dashboard"
msgstr …
Run Code Online (Sandbox Code Playgroud)

php windows translation gettext poedit

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

具有支持属性的setter中的StackOverflowException

更新:我已经解决了我遇到的问题,但我不知道为什么这个bug会产生堆栈跟踪.堆栈跟踪导致我完全错误的方向.如果有人能够解释这里发生了什么,我会很感激(并且会将你的答案标记为已接受).请注意,我的原始帖子已被删除.

我有以下课程.其中不相关的部分已被删除:

class ClassName {
    private string[] _accountTypes = new string[2] {"ECOM", "MOTO"};

    private Dictionary<string, string> _settleDueDateDictionary = new Dictionary<string, string>() {
        {"0", "Process immediately."},
        {"1", "Wait 1 day"},
        {"2", "Wait 2 days"},
        {"3", "Wait 3 days"},
        {"4", "Wait 4 days"},
        {"5", "Wait 5 days"},
        {"6", "Wait 6 days"},
        {"7", "Wait 7 days"},
    };


    private string _settleDueDate;

    private string _accountTypeDescription;


    public string SettleDueDate
    {
        get
        {
            DateTime today = DateTime.Today;
            long settleDueDate = Convert.ToInt64(_settleDueDate);
            return today.AddDays(settleDueDate).ToString("MM/dd/yyyy");
        }
        set
        { …
Run Code Online (Sandbox Code Playgroud)

c# asp.net stack-overflow setter

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

pg_query() - "无法设置连接到阻塞模式(错误号8)

我们的应用程序是使用COPY查询将CSV文件中的数据插入Redshift .它上传c.c总共700 GB.11000个文件.每个文件都映射到一个数据库表.我们SELECT COUNT(*) FROM <table>在每个之前和之后运行COPY日志记录和健全性检查.

经过一段时间(似乎有所不同)调用pg_query()返回此E_NOTICEPHP错误:

pg_query() - "Cannot set connection to blocking mode (Error No. 8)
Run Code Online (Sandbox Code Playgroud)

这是为SELECT COUNT(*) FROM <table>查询返回的; 我们的应用程序将所有PHP错误传播到异常.除去该传播给了我们这个错误信息除了E_NOTICE上述的两个SELECTCOPY:

Failed to run query: server closed the connection unexpectedly
    This probably means the server terminated abnormally
Run Code Online (Sandbox Code Playgroud)

COPY查询肯定不实际插入的文件.

一旦出现,每次尝试插入文件时都会发生此错误.它似乎没有解决自己.

我们最初pg_connect()在脚本开头打开了一个数据库连接(打开),并将其重新用于所有后续的SELECTs和COPYs.当我们得到E_NOTICE上述内容时,我们尝试了 - 就像实验一样 - 为每个查询打开一个新连接.这没有改变.

我们在PHP ini文件中的当前pgsql设置是:

pgsql.allow_persistent = Off
pgsql.auto_reset_persistent …
Run Code Online (Sandbox Code Playgroud)

php database postgresql amazon-web-services amazon-redshift

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

PHP和SSL CA验证 - 操作系统独立

这是一个简单的PHP脚本,可以打开SSL套接字,准备发送HTTP请求:

$contextOptions = array();

$socketUrl = 'ssl://google.com:443';
$streamContext = stream_context_create($contextOptions);
$socket = stream_socket_client($socketUrl, $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $streamContext);

if (!$socket || $errno !== 0) {
    var_dump($socket, $errstr);
    exit;
}

var_dump($socket);
exit('Socket created.');

这工作 - 我刚刚测试了它 - 但是没有针对可信CA存储的验证.

我们可以修改该脚本以使用PHP的SSL Context选项:

$contextOptions = array(
    'ssl' => array(
        'cafile' => 'C:\xampp\cacerts.pem',
        'CN_match' => '*.google.com',  // CN_match will only be checked if 'verify_peer' is set to TRUE.  See https://bugs.php.net/bug.php?id=47030.
        'verify_peer' => TRUE,
    )
);

$socketUrl = 'ssl://google.com:443';
$streamContext = stream_context_create($contextOptions);
$socket = …

php linux windows ssl ssl-certificate

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

Magento自定义支付网关

我正在尝试为Magento编写自定义支付网关.该模块在管理后端(系统 - 配置 - 付款方式)中被识别,但是当到达前端的"付款信息"时,不会出现选择模块的选项.

下面包含我创建的三个XML文件以及它们所在的目录.

任何帮助将非常感激.谢谢.

根/应用程序的/ etc /模块/ Namespace_Module

<?xml version="1.0"?>

<config>
  <modules>
    <Namespace_Module>
        <active>true</active>
        <codePool>local</codePool>
    </Namespace_Module>
  </modules>
</config>
Run Code Online (Sandbox Code Playgroud)

根/应用程序/代码/本地//命名空间/模块的/ etc/config.xml中

<?xml version="1.0"?>

<config>
  <modules>
    <Namespace_Module>
        <version>0.1.0</version>
    </Namespace_Module>
  </modules>

  <global>

    <models>
        <alias>
            <class>Namespace_Module_Model</class>
        </alias>
    </models>

    <resources>
        <alias_setup>
            <setup>
                <module>Namespace_Module</module>
            </setup>
            <connection>
                <use>core_setup</use>
            </connection>
        </alias_setup>

         <alias_write>
            <connection>
                <use>core_write</use>
            </connection>
        </alias_write>

        <alias_read>
            <connection>
                <use>core_read</use>
            </connection>
        </alias_read>
    </resources>

  </global>
Run Code Online (Sandbox Code Playgroud)

根/应用程序/代码/本地//命名空间/模块的/ etc /的system.xml

<?xml version="1.0"?>

<config>
    <sections>
    <payment>
        <groups>
            <alias translate="label">
                <label>Module</label>
                <frontend_type>text</frontend_type>
                <sort_order>1</sort_order>
                <show_in_default>1</show_in_default>
                <show_in_website>1</show_in_website>
                <show_in_store>1</show_in_store>

                <fields>

                    <active translate="label">
                        <label>Enabled: </label> …
Run Code Online (Sandbox Code Playgroud)

payment magento

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

.PO到.MO - 程序转换(PHP)

我计划允许用户通过PHP用户界面生成.POT文件/ .PO文件,作为CMS解决方案的一部分.一旦生成了这些文件(简单的位),我想允许我的系统自动将这些文件转换为.MO文件以响应用户(POST)请求.

我在SO上看到了以下问题:

php中的.po到.mo转换器?

我知道我可以msgfmt使用PHP的exec()功能运行,但这似乎只是一个Linux解决方案,如果我是正确的?我如何在其他操作系统上执行此操作? 如果有人愿意展示,那么在实践中如何做到这一点的一些示例代码也将非常有用.这与我通常做的工作完全不同!

这只是目前的概念,但我希望我走的是正确的路线.如果您对此方法有任何其他想法/建议,我会很高兴听到它们.背景信息如下.

其他背景资料 - 不需要:

我正在通过解析简单的模板文件来检索原始的英文文本,这些文件只包含基本的HTML和调用<?php _('the gettext method'); ?>.编辑/保存时会解析这些模板并检索语言条目.然后将生成.POT文件.用户现在必须手动编辑翻译(通过简单的界面,而不是直接编辑)来更新/准备所有.PO文件.完成后,我需要能够将它们转换为.MO文件,这是我的问题的标题.

php linux windows translation gettext

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

Perl REGEX问题

作为一名新的Perl工程师通过'Programming Perl'工作,我遇到了以下正则表达式:

/^(.*?): (.*)$/;
Run Code Online (Sandbox Code Playgroud)

此正则表达式旨在解析电子邮件标头并将其插入哈希.电子邮件标头包含在单独的.txt文件中,格式如下:

From: person@site.com
To: email@site.com
Date: Mon, 1st Jan 2000 09:00:00 -1000
Subject: Subject here
Run Code Online (Sandbox Code Playgroud)

我用来处理这个示例正则表达式的整个代码如下:

use warnings;
use strict;

my %fields = ();

open(FILE, 'header.txt') or die('Could not open.');

while(<FILE>)
{
    /^(.*?): (.*)$/;
    $fields{$1} = $2;
}

foreach(%fields)
{
    print;
    print "\n";
}
Run Code Online (Sandbox Code Playgroud)

现在,谈谈我的问题.我不确定为什么第一个子模式被修改为使用最小量词.这可能是一个小问题,但我不明白为什么它已经完成.

谢谢你的回复.

regex perl quantifiers

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