【问题标题】:How to determine whether something is in a conditional statement in PHP?如何确定某些东西是否在 PHP 的条件语句中?
【发布时间】:2013-09-29 10:11:34
【问题描述】:

我有一个 PHP 网站的副本,那里有很多页面和很多代码。它使用条件语句来确定应该打印哪些内容。这是一个例子(可能有很多像下面这样的sn-ps):

<?php if($countryA): ?>
     <div myattr="myvalue">
<?php elseif($countryB): ?>
     <div myattr="myvalue">
<?php elseif($countryC): ?>
     <div myattr="myvalue">
<?php elseif($countryD): ?>
     <div myattr="myvalue">
<?php endif; ?>

比方说,我不在乎国家 A、国家 B 和国家 D 是什么,我只关心国家 C 中是否有 &lt;div myattr="myvalue"&gt;
如果我想知道如果$countryDtrue 会出现多少次&lt;div myattr="myvalue"&gt;",我需要使用关键字&lt;div myattr="myvalue"&gt; 在我的网站目录中的所有文件中执行搜索,并检查是否有&lt;?php elseif($countryC): ?&gt;每个搜索结果的上下文,这确实是一个巨大的负担......

有什么方法可以帮助我有效地解决这个问题?如果我想以编程方式执行此操作,是否需要 PHP 解析器?

【问题讨论】:

  • 一般来说,您需要一个 PHP 解析器来确定任何给定条件的“范围”。但是,如果您正在处理的特定代码受到更多限制(例如,如果每个 if-country 块都像您的示例中一样简单),那么您可以使用更简单的解决方案。那么:遵循任何给定的感兴趣条件的块有多简单/通用?
  • 我会说它很笼统,该块不会像我在这里发布的那么简单,实际上,它可能包含数百行代码......看起来我真的需要一个PHP解析器。

标签: php parsing conditional-statements php-parser


【解决方案1】:

您需要一个解析器,或者换句话说,您必须将代码或控制流的格式保存在文件或数据库中,并根据保存的数据或流应用逻辑。 我希望你能明白。

【讨论】:

  • Thx,你知道是否有任何解析器可以简单地告诉我语句是否在条件块中?
  • 我知道一个 php 函数 php_check_syntax 但没有使用过。检查这对你是否有用。
  • 它似乎是用来检查语法错误的,所以它对我不起作用。谢谢都一样~
  • 检查此链接是否有帮助。 mediawiki.org/wiki/Help:Extension:ParserFunctions
猜你喜欢
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 2016-09-27
  • 1970-01-01
  • 2014-05-12
  • 1970-01-01
相关资源
最近更新 更多