小编Str*_*rae的帖子

用于PHP DOMDocument的类jQuery选择器

我正在使用a DOMDocument,我想知道是否存在使用类似CSS的选择器来选择节点的方法,就像我们在jQuery中一样.

示例情况:我正在解析XML文件,其中一个片段如下所示:

<gesmes:Envelope>
    <gesmes:subject>Reference rates</gesmes:subject>
    <gesmes:Sender>
        <gesmes:name>European Central Bank</gesmes:name>
    </gesmes:Sender>
    <Cube>
        <Cube time="2009-07-13">
            <Cube currency="USD" rate="1.3975"/>
            <Cube currency="JPY" rate="129.03"/>
            <Cube currency="BGN" rate="1.9558"/>
            <Cube currency="CZK" rate="26.028"/>
        </Cube>
    </Cube>
</gesmes:Envelope>
Run Code Online (Sandbox Code Playgroud)

使用类似jQuery的选择器访问此结构将非常简单.例如,我可以使用

$("Cube[currency]")
Run Code Online (Sandbox Code Playgroud)

Cube使用'currency'属性检索所有元素.

但是我怎么能用PHP做同样的事情DOMDocument呢?我想选择具有属性或具有特定属性值的元素.

php xml jquery dom css-selectors

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

Postgresql:优化数字字段的列大小

我不明白Postgresql(9.2)如何计算列大小(以kb为单位),我有这样的表:

Table d2:
 Column  |     Type      |
---------+---------------|
 id      | serial        |
 n       | numeric(17,2) |

Table d4:
 Column  |     Type      |
---------+---------------|
 id      | serial        |
 n       | numeric(19,4) |

Table d18:
 Column  |     Type      |
---------+---------------|
 id      | serial        |
 n       | numeric(35,18)|

Table b1:
 Column  |     Type      |
---------+---------------|
 id      | serial        |
 n       | numeric(16,2) |

Table b2:
 Column  |     Type      |
---------+---------------|
 id      | serial        |
 n       | numeric(4,2)  |
Run Code Online (Sandbox Code Playgroud)

我用这个代码填充它们,以便每个表有10000行;

$tests = array(2, 4, …
Run Code Online (Sandbox Code Playgroud)

database postgresql database-design postgresql-9.2

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

有谁知道任何列车时刻表API服务?

UPDATE

时间过去了,但有些事情正在发生变化(欧洲):我的一位朋友向我展示了这个:http://project.irail.be/ Atm它只适用于比利时.

我想知道是否有任何在线服务提供关于列车时刻表(到达,离开,蚀刻......)的API,至少对于欧洲电台而言.

我知道www.bahn.de,他为许多欧洲国家提供了精确的时间表,但我没有发现任何与api服务相似的时间表.

我的目标(好吧,只是一个未来的项目)是开发一个像gmaps这样的应用程序,但是我没有给出汽车旅行,而是想给火车旅行...你知道,用户设定了出发日期,时间和站,然后第一次到达,然后可能再添加另一个,依此类推.

那么,有什么类似的,可以通过php/python/javascript查询?

编辑:如果可以帮助,我想知道建立一个服务来计划一个铁路之旅!(任何帮助都会非常感激)

我卡住了.谷歌的公共服务API依赖于每个本地公司提供的信息,许多分支机构都缺失(例如,几乎不可能用它来建立一个触及欧洲两个或更多地区的行程.正如我之前所说的,唯一的我知道做得很好的服务是bahn.de,他们确实拥有所有数据..但没有api.我试图解析他们的结果页面(为了将它们用作API),但似乎标记已经构建完全是为了避免这种情况......也许他们有商业计划背后或其他什么,但我不认为他们会发布一些API ..所以,我的项目正在进行没有这个功能(ps:我的项目是关于非营利文化组织,我们不会向任何人发动战争; P)

@El Goorf:如果你找到方法,并考虑分享它的想法,如果需要帮助,请指望我的手!

javascript php python api

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

数组:使用点表示法设置值?

查看Kohana文档,我发现这非常有用,它们用于使用点表示法从多维数组中获取值,例如:

$foo = array('bar' => array('color' => 'green', 'size' => 'M'));
$value = path($foo, 'bar.color', NULL , '.');
// $value now is 'green'
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法以相同的方式设置数组值:

set_value($foo, 'bar.color', 'black');
Run Code Online (Sandbox Code Playgroud)

我发现这样做的唯一方法是重新构建数组表示法($ array ['bar'] ['color'])然后设置值..使用eval.

有什么想法避免评估?

php arrays eval multidimensional-array

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

PostgreSQL"IF"语法错误

我是PostgreSQL的新手,我已经遇到了第一个问题..

我按照手动分步编写了一些代码来了解事务的工作原理.

为了简短起见,我创建了2个表,用户和移动:第一个是名称,电子邮件和信用列,第二个是from,to,import.

所以,我是这样尝试的:

BEGIN;
INSERT INTO movements (from, to, import) VALUES ('mary', 'steve', 600);
UPDATE users SET credit = credit - 600 WHERE name = 'mary';
UPDATE users SET credit = credit + 600 WHERE name = 'steve';
--here comes the problem!
IF (SELECT credit FROM users WHERE name = 'mary') < 0 THEN
 ROLLBACK;
END IF
COMMIT;
Run Code Online (Sandbox Code Playgroud)

我总是得到错误:

错误:"IF"处或附近的语法错误

我哪里弄错了?

PS:不要专注于示例功能,这只是我理解交易的试验......现在,IF条款......

sql postgresql syntax if-statement

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

处理并发问题的最佳方法

我有一个LAPP(linux,apache,postgresql和php)环境,但问题在Postgres或Mysql上都是一样的.

我有一个开发的cms应用程序,它处理客户端,文档(估计,发票等)和其他数据,在1个postgres DB中构建,包含许多模式(每个客户使用该应用程序一个); 让我们假设大约200个模式,每个模式同时由15个人使用(平均).

编辑:我在每个表上都有一个名为last_update的时间戳字段,以及每次更新行时更新时间戳的触发器.

情况是:

  1. People Foo和Bar正在编辑文档0001,使用包含每个文档详细信息的表单.
  2. 例如,Foo会更改货件详细信息.
  3. 栏会更改电话号码以及文档中的某些项目.
  4. Foo按"保存"按钮,应用程序更新数据库.
  5. 栏后按栏"保存"按钮,重新发送包含旧货件详细信息的表格.
  6. 在数据库中,Foo更改已丢失.

我想要的情况:

  1. People Foo,Bar,John,Mary,Paoul正在编辑文档0001,使用包含每个文档细节的表单.
  2. 例如,Foo会更改货件详细信息.
  3. 酒吧和其他人改变了别的东西.
  4. Foo按"保存"按钮,应用程序更新数据库.
  5. 酒吧和其他人得到警报'警告!这个文件已被其他人改变了.点击此处加载实际数据'.

我想知道用ajax来做这件事; 只需使用带有文档ID和最后更新时间戳的隐藏字段,每隔5秒检查最后更新的时间是否相同,什么也不做,否则,显示警告对话框.

因此,页面check-last-update.php应该类似于:

<?php
//[connect to db, postgres or mysql]
$documentId = isset($_POST['document-id']) ? $_POST['document-id'] : 0;
$lastUpdateTime = isset($_POST['last-update-time']) ? $_POST['last-update-time'] : 0;
//in the real life i sanitize the data and use prepared statements;
$qr = pg_query("
    SELECT
        last_update_time
    FROM
        documents
    WHERE
        id = '$documentId'
");
$ray = pg_fetch_assoc($qr);
if($ray['last_update_time'] > $lastUpdateTime){
    //someone else updated the document …
Run Code Online (Sandbox Code Playgroud)

php mysql postgresql concurrency

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

如何让我的用户插入HTML代码,没有风险?(不仅是技术风险)

我开发了一个Web应用程序,允许我的用户在LAMP环境中动态管理网站的某些方面(是的,某种cms)(debian,apache,php,mysql)

好吧,例如,他们在我的服务器上的私人区域创建新闻,然后通过cURL请求(或通过ajax)在他们的网站上发布.

这个消息是用WYSIWYG编辑器创建的(fck at moment,可能是未来的tinyMCE).

所以,我不能禁止html标签,但我怎么能安全?我必须删除什么样的标签(javascripts?)?这意味着服务器安全..但如何"合法"安全?如果用户使用我的应用程序制作xss,我可以遇到一些法律问题吗?

html javascript php security xss

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

PHP变量引用和内存使用情况

根据php手册:

<?php
$a =& $b;
?>
// Note:
// $a and $b are completely equal here. $a is not pointing to $b or vice versa.
// $a and $b are pointing to the same place. 
Run Code Online (Sandbox Code Playgroud)

我认为:

<?php
$x = "something";
$y = $x;
$z = $x;
Run Code Online (Sandbox Code Playgroud)

应该消耗更多的内存:

<?php
$x = "something";
$y =& $x;
$z =& $x;
Run Code Online (Sandbox Code Playgroud)

因为,如果我理解是正确的,在我们的第一种情况下"复制"的值something,并把它分配给$y$z具有在端部3级的变量和3页的内容,而在第二种情况下,我们有3个变量pointing相同的内容.

所以,使用如下代码:

$value = "put something here, like a long lorem ipsum";
for($i …
Run Code Online (Sandbox Code Playgroud)

php variables memory-management reference

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

Drupal Commerce Line项目:改变价格?

我必须在购物车中添加一些自定义金额的订单项.商品保存,价格= 0,我的模块计算价格并将订单项添加到购物车/订单,但我不明白如何以编程方式设置价格.

我已经阅读了有关使用规则的内容,但我需要我的模块才能设置/更改价格,而无需调用规则.

我尝试使用实体包装器,我尝试更改使用commerce_product_line_item_new()创建的订单项,但什么都没有,当订单项进入购物车时始终具有原始产品价格(在我的情况下为0).

如何以编程方式更改订单项价格?

到目前为止我的代码看起来像:

// For debugging, this function is called by hook_menu()
function mymodule_test($product_id)
{
    global $user;
    $user = user_load($user->uid);

    $order = commerce_cart_order_load($user->uid);
    $order_wrapper = entity_metadata_wrapper('commerce_order', $order);

    $product = commerce_product_load($product_id);

    $line_item = commerce_product_line_item_new(
            $product,
            1,
            0,
            array(
            ),
            'cover'
    );

    $line_item_wrapper = entity_metadata_wrapper("commerce_line_item", $line_item);

    $line_item_wrapper->commerce_unit_price->data = commerce_price_component_add(
            $line_item_wrapper->commerce_unit_price->value(),
            'base_price',
            array(
                            'amount' => 1234,
                            'currency_code' => 'EUR',
                            'data' => array(),
            ),
            TRUE
    );

    $insert_line_item = commerce_cart_product_add($user->uid, $line_item_wrapper->value(), FALSE);

    return 'done';
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我尝试调整在commerce/modules/line_item/commerce_line_item.rules.inc中找到的commerce_line_item_unit_price_amount()的代码,但是这个测试:

<?php
    global $user;
    $product …
Run Code Online (Sandbox Code Playgroud)

drupal drupal-7 drupal-commerce

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

什么时候优化真的值得花费在它上面的时间?

在我的上一个问题之后,我想了解何时优化确实值得开发人员花费时间.

是否值得花4个小时来查询速度提高20%?是的,不,也许,是的,如果......?

"浪费"7个小时将任务切换到另一种语言以节省大约40%的CPU使用量"值得"吗?

我对新项目的正常迭代是:

  1. 了解客户想要什么,以及他需要什么;
  2. 规划项目:什么语言和地点,数据库设计;
  3. 开发项目;
  4. 测试和错误修复;
  5. 对正在运行的项目和最终优化的最终分析;
  6. 如果项目需要,则进一步分析资源的实际使用情况,然后进一步优化;

隐含着"编写好的,可维护的代码".

显然,大的"优化"部分发生在第2点,但通常在项目结束后审查代码时,我发现一些部分,即使他们做得好,也可以改进.这是第5点的基本原理.

为了给出最后一点的具体示例,一个简单的例子是当我期望90%的查询SELECT和10%的查询时INSERT/UPDATE,所以我对带有索引的数据库表收费.但是在6个月之后,我发现在现实生活中有10%的SELECT查询和90%的INSERT/UPDATEs,所以查询速度没有得到优化.这是第一个出现在我脑海中的例子(显然,对于最初的错误设计而言,这不仅仅是优化的"补丁").

请注意,我是一名开发人员,而不是商人 - 但我希望尽可能让我的客户尽可能地保持良心.

我的意思是,我知道如果我失去了50个小时来获得应用程序总速度的5%,并且该应用程序被10个用户使用,那么它可能不值得花时间......但它是什么时候它是什么时候?

您认为优化何时至关重要?

你通常使用什么公式,意识到优化所花费的时间(以及最终的收益)并不总是可以在纸上量化?

编辑:对不起,但我不能接受像"直到人们不抱怨id,不需要优化"这样的答案; 它可以是一个商业视图(可疑,imho),但不是开发人员或(imho)一个良好的答案.我知道,这个问题确实很主观.

我同意Cheeso,性能优化应推迟,对项目的真实使用情况和负载一些分析,但small'n'quick优化可以立刻后项目结束来完成.

谢谢大家 ;)

optimization performance web-applications

9
推荐指数
3
解决办法
400
查看次数