我的问题不是关于RegEx,而是关于PhpStorm的搜索替换功能与RegEx打开.
我使用PhpStorm,我想在替换文本中使用美元符号.
但是当我使用RegEx模式执行此操作时,$成为识别反向引用的特殊字符.
所以我必须逃避它.
但PhpStorm并不接受\ $和$$.
如何在RegEx模式下转义$?
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) 我在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数组相交,其数量取决于用户提供的参数,每个参数都可以包含任意数量的元素.
例如: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.
有没有人知道如何以尽可能简单的方式处理这个问题?
我刚刚在我的应用程序中设置了一个简单的CSRF保护.它会创建一个独特的crumb,在提交表单时会根据会话值进行验证.
不幸的是,这意味着我不能同时打开我的应用程序的多个实例(浏览器中的选项卡),因为CSRF碎屑彼此冲突.
我应该为每个实际表单创建一个单独的令牌,还是为我的所有表单使用共同的共享面包屑?这里有什么常识?
> 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)
这看起来很棒 - 但我还没有完全理解它的用法.
我既没有找到方法,也没有找到这方面的例子,也许这是不可能的,也许它甚至不应该 - 所以,明确的"不,不可能,因为......"当然也是一个有效的答案.
您在何时,何地以及为何在PHP项目中使用ESB?
在哪里,何时以及为什么认为在PHP项目中使用ESB是有意义的?
ESB(以及像Mule这样的ESB辅导员)是否提供PHP和本机LAMP技术所缺乏的任何功能?
编辑
我对这个问题的动机源于我的假设,你实际上从未真正需要骡子.骡子将促进与外部服务的沟通,您可以在没有骡子的情况下处理.在一天结束时,Mule也会产生成本和开销.所以我的问题是指导有人告诉我你真正受益于ESB和Mule这样的工具的场景,或者凭借扎实的知识来猜测.
编辑2
关于Houcem回复我对他的帖子的评论...什么是ESB/Mule的原生LAMP答案?
编辑3
看起来像Tuxedo可能是Mule/ESB的PHP本地替代品.有人有使用这个工具的经验吗?
我想做以下代码:
{% 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) 我有一个对象"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) 如何编写PHP操作码,将其保存在文件中并使Zend Engine执行它?任何方法或黑客都是受欢迎的,只要它能够解决问题.