【问题标题】:Extract a substring from a string using PHP (Cake PHP application)使用 PHP(Cake PHP 应用程序)从字符串中提取子字符串
【发布时间】:2012-12-25 04:31:58
【问题描述】:

我需要帮助来解决以下问题。

我有一个输入字符串如下:-

msgid "Default_TOP_01"
msgstr “首页页面
msgid “Default_TOP_02”
msgstr “内容

所需的输出应该是:-

msgstr "Default_TOP_01" \n msgstr "主页 页面" \n msgid "Default_TOP_02" \n msgstr "内容

我需要删除带有 class="notranslate" 的开始和结束跨度标签。
标记应替换为 \n。不应删除任何带有“msgstr”值的标签,例如 msgstr "content within "

【问题讨论】:

  • 您的示例给出了错误的嵌套标签,最初的 <span class="notranslate"> 没有关闭。是否总是存在这样一个初始的、未封闭的标签,它可能会有所不同,或者这是您问题中的错字?是否还有其他标签不平衡的情况?可能存在 msgstr 可能包含文本“<span class="notranslate">”的情况,您希望如何处理?
  • 我已经关闭了初始 span 标签。请立即查看问题。

标签: php html cakephp


【解决方案1】:

首先在字符串上运行str_replace,将所有出现的<br> 替换为\n,然后用strip_tags 去除字符串中的所有HTML 标记。

<?php
$str = '<span class="notranslate">msgid "Default_TOP_01" <br> <span class="notranslate">msgstr </span>"home <strong>page </strong>" <br> <span class="notranslate">msgid "Default_TOP_02" </span> <br> <span class="notranslate">msgstr </span>"content <span>within </span>"';

echo 'Original: '.$str;
echo 'Modified: '.strip_tags(str_replace('<br>', "\n", $str));                                                                                                                                                                                                                 
?> 

【讨论】:

  • strip_tags 会删除所有标签。但正如我的问题中提到的,我不想删除带有“msgstr”值的标签。请仔细阅读我的问题的底部。
猜你喜欢
  • 2017-04-01
  • 2014-06-24
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多