草庐IT

PHP 正则表达式 : matching a word or sentence inside a html <p> BUT NOT inside <div> <img> <a> tags

我正在尝试匹配和替换html文档中的大约100个单词,为每个单词创建链接。出于性能原因,我认为DOM操作会比preg_replace慢。问题是我希望能够匹配(和替换)简单的单词(或句子)INSIDEtagsBUTNOTinsideanyothertagnor.我正在使用这个正则表达式来匹配单词“sapien”:/(]*>)(.*)(?!]+>[^]+)(?!=\"[\w]*)(\bsapien\b)(?![^]+)(?![^\w]*\")(.*)()/imU这是我应用它的文本:Crascursusconsequatnibhsapienacvehicula.Sederatsapien,c

php - 如何读取 Dc :creator tag in xml?

rss提要导出是:◀️تنبلیگروهیچیست؟http://forum.mlmarketing.ir/showthread.php/241-◀️تنبلی-گروهی-چیست؟?goto=newpostWed,08Feb201707:37:19GMT*✏️مهندسفرانسویبهنامرینگلمنکهرویکاراییاسبهاکارمیکرددریافتکهقدرتحملباردواسببادوبرابرقدرتحملباریکاسببرابرنیست.اواین...✏️مهندسفرانسویبهنامرینگلمنکهرویکاراییاسبهاکارمیکردد

函数 nl2br 中的 PHP 奇怪行为

我正在处理我的小型网络应用程序的重构。整个晚上。今天开始测试的时候发现的第一个bug是系统PHP函数的问题nl2br().在我的本地主机上,我有PHP版本5.2.9,正如我在PHPsite上看到的那样从版本4.0.5nl2br()XHTML兼容。那我完全不明白为什么我的nl2br()返回没有将第二个参数设置为false而不是.这是我发现这个错误的方法:publicfunctioneliminateTags($msg){$setBrakes=nl2br($msg);$decodeHTML=htmlspecialchars_decode($setBrakes);#CheckPHPversi

php - Zend_Soap - 错误解析 WSDL : Start tag expected, '<' 未找到

对于完全有效的同一个WSDL,我可以像这样使用PEARSOAP正确访问它:$WSDL=newSOAP_WSDL($this->wsdlUrl);$proxy=$WSDL->getProxy();但是不能让它通过Zend_Soap工作,当这样使用时:$soapclient=newZend_Soap_Client($this->wsdlUrl);通过Zend_Soap_Client访问时出现以下错误:Error:SOAP-ERROR:ParsingWSDL:Couldn'tloadfrom'https://abc.xyz.com/agent/TestService.php?wsdl':St

php - 限制 br 的 nl2br 连续显示的数量?

我在编写“bb解析器”时遇到了一些问题。或者,好吧,不是解析器本身,而是nl2br修改它。从数据库中取出的字符串是这样的:正文正文[代码]代码代码代码[/代码]正文正文现在,nl2br在第一个“文本文本文本”之后放置一个br/,然后在其下方放置另一个,因此在[code]标记之前有两个换行符(这实际上是正确的,但不是我想要的)。有什么方法可以限制连续输入多少个br?我似乎找不到足够简单的解决方案。提前致谢,伙计们。 最佳答案 除了之前的解决方案之外,我添加了一个不同的解决方案,因为Fredrik要求它。这将替换双在nl2br之后而不是

PHP 7.2.14 "short_open_tag = On"被忽略

在全新安装运行PHP7.2.14的Fedora28时,我遇到了一个奇怪的问题,即主php.ini中的short_open_tag=On被忽略了。我已验证只有主php.ini(/etc/php.ini)中只有一个标志实例。我尝试使用php_valueshort_open_tag1在.htaccess中设置标志。每次更改后我都会重新启动Apache。但是当我用phpinfo()验证时,标志总是设置为关闭。这个标志是否最终被弃用并且更改根本没有反射(reflect)在PHP更改日志中(http://php.net/ChangeLog-7.php)?查看PHP源代码(我不是专家)并没有建议覆盖

php - 在 nl2br 中只允许一个 br

我让我网站的成员在文本区域发布一些关于他们的信息。我使用函数nl2br让它更漂亮,像那样:$text_of_area=nl2br($_POST['text_area_name']);//yeah,ofcourseiusefunctionsagainstxss,sqlinjectionattacksmysql_query("...");//hereIinsertatext但是问题来了。我不想让人们在文本中使用超过一个允许的输入(br),那么我该怎么办? 最佳答案 为什么不在调用nl2br之前更换多条新线路?如果你想让他们在他们的帖子中

php - 文本区域,nl2br,大量换行符

我有一个文本区域,用户可以在其中输入文本(可以根据需要返回任意数量的返回),然后我获取该值,将其插入数据库,然后使用更新文本区域的值一个在数据库中。desc));?>是我的html。我遇到的问题是,在提交值并将其插入数据库时​​,当它填充文本区域的值时,换行符的数量加倍。所以如果他们输入HeylinebreakFoobar它将使textarea的值HeylinebreaklinebreakFoobarfunctionnl2br_lose($string){returnstr_replace('',' ',str_replace('',' ',str_replace(

php/html : replace html closing tags with newlines

我在网上抓取html,当我使用phpstrip_tags时,它会将整个html压缩成一行,删除所有结构。我想通过用换行符替换关闭的h、p和br标记来保留结构。pregreplace是最好的解决方案吗?一旦我替换了所有结束标签,我将运行一个strip标签,但这样我就有了一个基本结构。 最佳答案 $str='somehtml';$tags=array('','','','','','','','','','','');$str=str_replace($tags,"\n",$str);//thenstriptags

php - 在 PHP 中删除开始和结束 <br> 标签

快速提问:删除的最佳方法是什么?和$string开头和结尾的标签?我目前正在使用这段代码,但它似乎并没有只删除标签。$str=preg_replace('{^(|ANDnbsp;)+}i','',$str);$str=preg_replace('{(|ANDnbsp;)+$}i','',$str);编辑:附加信息此代码处理从旧CMS导入的信息。因此,我知道我需要替换的唯一两个标签是和.此外,我只想在$string的开头和结尾替换这些标签。,不在两者之间。我不需要处理任何其他标签;格式错误的HTML或其他属性。本质上,我只想扩展我建议的代码,以便标签以及被替换.对于没有提供足够的信息,我