小编Raf*_*ael的帖子

在替换文本中使用'$'/转义它(RegEx模式)

我的问题不是关于RegEx,而是关于PhpStorm的搜索替换功能与RegEx打开.

我使用PhpStorm,我想在替换文本中使用美元符号.

但是当我使用RegEx模式执行此操作时,$成为识别反向引用的特殊字符.

所以我必须逃避它.

但PhpStorm并不接受\ $和$$.

如何在RegEx模式下转义$?

phpstorm

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

PHP操作码如何与实际执行的二进制代码相关?

test.php为纯文本:

<?php
$x = "a";
echo $x;
Run Code Online (Sandbox Code Playgroud)

test.php作为操作码:

debian:~ php -d vld.active=1 -d vld.execute=0 -f test.php

Finding entry points
Branch analysis from position: 0
Return found
filename:       /root/test.php
function name:  (null)
number of ops:  5
compiled vars:  !0 = $x
line     # *  op                           fetch          ext  return  operands
---------------------------------------------------------------------------------
   2     0  >   EXT_STMT
         1      ASSIGN                                                   !0, 'a'
   3     2      EXT_STMT
         3      ECHO                                                     !0
   4     4    > RETURN                                                   1

branch: #  0; line:     2-    4; sop:     0; eop:     4
path #1: …
Run Code Online (Sandbox Code Playgroud)

php apc virtual-machine php-internals php-opcode

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

'php pyrus.phar'不会被执行

我在Debian上使用PHP 5.3并根据php -m'Phar'加载.

但是执行php pyrus.phar或php pyrus.phar config-show导致根本没有输出.

可能是什么问题?

debian:~# php -v
PHP 5.3.5-1 with Suhosin-Patch (cli) (built: Feb 19 2011 01:57:59)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans
    with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
Run Code Online (Sandbox Code Playgroud)

php -i 给我:

[...]

Phar

Phar: PHP Archive support => enabled
Phar EXT version => 2.0.1
Phar API version => 1.1.1 …
Run Code Online (Sandbox Code Playgroud)

php pear suhosin phar pyrus

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

在PHP中交叉未知数量的数组

我正在尝试与任意数量的PHP数组相交,其数量取决于用户提供的参数,每个参数都可以包含任意数量的元素.

例如:array1(1,2,3,4,5)array2(2,4,6,8,9,23)array3(a,b,3,c,f)... arrayN(x1,x2, x3,x4,x5 ...... xn)

由于array_intersect接受了一个params列表,我无法构建一个数组数组来交叉,并且必须绕过它.我想这个解决方案:http://bytes.com/topic/php/answers/13004-array_intersect-unknown-number-arrays但这并没有工作,因为报告的错误array_intersect需要2个或更多PARAMS.

有没有人知道如何以尽可能简单的方式处理这个问题?

php arrays loops array-intersect

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

CSRF令牌 - 如何正确实施?

我刚刚在我的应用程序中设置了一个简单的CSRF保护.它会创建一个独特的crumb,在提交表单时会根据会话值进行验证.

不幸的是,这意味着我不能同时打开我的应用程序的多个实例(浏览器中的选项卡),因为CSRF碎屑彼此冲突.

我应该为每个实际表单创建一个单独的令牌,还是为我的所有表单使用共同的共享面包屑?这里有什么常识?

php security csrf

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

使用data.table功能将长结构化data.table重塑为一个广泛的结构?

> library(data.table)
> A <- data.table(x = c(1,1,2,2), y = c(1,2,1,2), v = c(0.1,0.2,0.3,0.4))
> A
   x y   v
1: 1 1 0.1
2: 1 2 0.2
3: 2 1 0.3
4: 2 2 0.4
> B <- dcast(A, x~y)
Using v as value column: use value.var to override.
> B
  x   1   2
1 1 0.1 0.2
2 2 0.3 0.4
Run Code Online (Sandbox Code Playgroud)

显然,我可以使用包reshape2的fx dcast将data.table从long扩展为long.但是data.table附带了一个重载的括号运算符,它提供了诸如"by"和"group"之类的参数,这让我想知道是否有可能使用它来实现它(对于data.table特定的功能)?

只是手册中的一个随机示例:

DT[,lapply(.SD,sum),by=x]
Run Code Online (Sandbox Code Playgroud)

这看起来很棒 - 但我还没有完全理解它的用法.

我既没有找到方法,也没有找到这方面的例子,也许这是不可能的,也许它甚至不应该 - 所以,明确的"不,不可能,因为......"当然也是一个有效的答案.

r data.table

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

PHP和ESB(使用Mule)(ESB:企业服务总线)

您在何时,何地以及为何在PHP项目中使用ESB?

在哪里,何时以及为什么认为在PHP项目中使用ESB是有意义的?

ESB(以及像Mule这样的ESB辅导员)是否提供PHP和本机LAMP技术所缺乏的任何功能?

编辑

我对这个问题的动机源于我的假设,你实际上从未真正需要骡子.骡子将促进与外部服务的沟通,您可以在没有骡子的情况下处理.在一天结束时,Mule也会产生成本和开销.所以我的问题是指导有人告诉我你真正受益于ESB和Mule这样的工具的场景,或者凭借扎实的知识来猜测.

编辑2

关于Houcem回复我对他的帖子的评论...什么是ESB/Mule的原生LAMP答案?

编辑3

看起来像Tuxedo可能是Mule/ESB的PHP本地替代品.有人有使用这个工具的经验吗?

php java esb mule

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

如何访问由变量确定的Twig中的成员?

我想做以下代码:

{% set rooms = [] %}
{% set opts = {
    'hasStudio': 'Studio',
    'has1Bed': '1 BR',
    'has2Bed': '2 BR',
    'has3Bed': '3 BR',
    'has4BedPlus': '4 BR+'
}
%}
{% for key, val in opts %}
    {% if bldg.{key} is none %} {# PROBLEM HERE.. HOW TO FIND THIS MEMBER!? #}
      {{ val }}?
    {% elseif bldg.{key} %}
      {{ val }}
    {% else %}
      No {{ val }}
    {% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

如何调用由值key?命名的bldg的成员属性?我想得到的价值

 bldg.hasStudio
 bldg.has1Bed
 bldg.has2Bed
 etc....
Run Code Online (Sandbox Code Playgroud)

php symfony twig

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

如何告诉PhpStorm实施细节?(魔术方法)

我有一个对象"User",它具有可访问性被声明为受保护但可以通过magic __set-method直接设置的属性.

在此输入图像描述

现在,PhpStorm发出了与右侧红色大柱明显不一致的信号.

是否有可能向PhpStorm解释发生了什么,所以这不再显示为错误?


编辑:

我使用PhpStorm 2.1.4

好的,这里有一些代码可以解释这个问题(连同到目前为止Alexey的建议解决方法,遗憾的是它没有为我做):

c.php:

<?php
/**
 * @property mixed $a
 */
class c1
{
    protected $a;

    public function __construct() { $this->a = __CLASS__; }

    public function __get($n) { return $this->{$n}; }
}

/**
 * @property $a mixed
 */
class c2
{
    protected $a;

    public function __construct() { $this->a = __CLASS__; }

    public function __get($n) { return $this->{$n}; }
}
Run Code Online (Sandbox Code Playgroud)

test.php的

<?php
require "c.php";

$c1 = new c1();
var_dump($c1->a);

$c2 = new c2();
var_dump($c2->a);
Run Code Online (Sandbox Code Playgroud)

和输出:

string …
Run Code Online (Sandbox Code Playgroud)

phpstorm

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

编写PHP操作码并执行它.怎么做?

如何编写PHP操作码,将其保存在文件中并使Zend Engine执行它?任何方法或黑客都是受欢迎的,只要它能够解决问题.

php opcode php-internals

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