【问题标题】:How search the output only `-` in any DOM using PHP script?如何使用 PHP 脚本在任何 DOM 中仅搜索输出 `-`?
【发布时间】:2015-08-22 09:36:28
【问题描述】:

如果有以下 DOM,如何仅搜索输出 -

  1. <p>-</p>
  2. <p><span style="font-size: medium;">-</span></p>

目前我只是使用下面的代码来找到这个输出-

$input = `<p>-</p>`;
if($input == `<p>-</p>`):
   return true;
else:
   return false;
endif;

有更好的想法吗?

【问题讨论】:

  • 既然是完全匹配,你的尝试已经足够了。如果匹配基于模式,那么您将需要 RegEx。
  • 你能告诉我细节吗?
  • 糟糕,除了使用RegEx,你还可以使用strpos($dom, '-')
  • 需要注意的是p元素不能有div子元素。
  • @Imran 在进行建议的编辑以将 bootstrap 更改为 twitter-bootstrap 请理解,您需要尝试解决帖子的所有问题,而不仅仅是将 bootstrap 更改为 twitter-bootstrap知道 bootstrap 不再归 twitter 所有,因此在更改标签有效时,无需在文本中将 bootstrap 更改为 twitter bootstrap。

标签: php css dom output


【解决方案1】:

接受的答案不适用于特殊情况,例如标签属性值包含 &gt;-&lt;- 未包含在标签中:

$input = '<span title="A valid title >-<">Should NOT match</span>';
$input = '<span>Should match</span>-';

您可以改为使用strip_tags(),它不如strpos() 高效,但适用于所有情况:

return (strip_tags($input) === '-');

【讨论】:

  • 这个,,,如你所说的那样工作 - 适用于所有条件。
【解决方案2】:

试试

$input = `<p>-</p>`;
$input = `<p><span style="font-size: medium;">-</span></p>`;
$input = `<p><div>-</div>`;
if(strpos($input, '>-<')):
   return true;
else:
   return false;
endif;

【讨论】:

  • @ImranHamzah 可以是 if(strpos($input, '>-')): 也是为了确保
猜你喜欢
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 2014-10-09
  • 1970-01-01
  • 2015-11-10
  • 2015-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多