首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >查找并连接生成一个模式。

查找并连接生成一个模式。
EN

Stack Overflow用户
提问于 2012-05-27 20:06:33
回答 3查看 187关注 0票数 0

我有一个很长的PHP文件,我只想复制所有的变量名,并构建一个insert sql查询。是否有一种方法可以使用正则表达式搜索模式并将查找结果连接起来,直到我收集所有变量并在语句中将其吐出?

我正在使用TextMate,并且熟悉正则表达式搜索。Regex搜索结果提供$0、$1等参数。但不知道这是否可能。任何编辑器中的解决方案都不只是文本匹配。

我只是有太多的变量(+100)这里是我的样本文件

代码语言:javascript
代码运行次数:0
运行
复制
$ID = $_POST['id'];
$TXN_TYPE = $_POST['txn_type'];
$CHARSET = $_POST['charset']
$CUSTOM = $_POST['custom'];
EN

回答 3

Stack Overflow用户

发布于 2012-05-27 20:34:54

您可以使用get_defined_vars()尝试一些东西。但是,该函数还列出了全局vars。如果不需要,可以使用此代码段删除它们,并且只显示您定义的var。

$variables = array_diff(get_defined_vars(),array(array();

然而,这个片段会生成通知,而我还没有找到解决它们的方法。

如果只有$_POST变量,则可以循环遍历$_POST数组本身,在遍历数组时以编程方式创建SQL。

票数 1
EN

Stack Overflow用户

发布于 2012-05-27 20:27:48

我自己的解决办法是,做相反的事情。这可能是不可能的。

只保留变量名,移除其余的变量名。使用

代码语言:javascript
代码运行次数:0
运行
复制
[space].+  regex to remove everything that is after the variable name.

清理文件,以便只留下变量名。然后再做几次查找和替换,以将变量名以您想要的形式带来。

票数 0
EN

Stack Overflow用户

发布于 2012-05-27 20:41:37

如果您只想匹配变量名(而不是$_POST数组索引),那么正则表达式基本上是提供在PHP文档中

代码语言:javascript
代码运行次数:0
运行
复制
\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

当然,这将包括$_POST,但这应该很容易删除。如果没有,则可以采用负前瞻性(如果TextMate支持它):

代码语言:javascript
代码运行次数:0
运行
复制
\$(?!_POST($|[^a-zA-Z0-9_\x7f-\xff]))[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10776857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档