草庐IT

php - 正则表达式删除所有空的 HTML 标签

这是我的PHP函数,用于从字符串输入中删除所有空的HTML标记:/***RemovethenestedHTMLemptytagsfromthestring.**@param$stringStringtoremovetags*@paramnull$replaceToReplaceemptystringwith*@returnmixedCleanedstring*/functioncrl_remove_empty_tags($string,$replaceTo=null){//Returnifstringnotgivenoremptyif(!is_string($string)||trim

php - 之前或之后的正则表达式

我会使用正则表达式来匹配字符串tofind第一种有两种可能beforetofind第二个是tofindafter如何用一个正则表达式匹配两个例子中的单词tofind?我用过before(tofind)|(tofind)after它给了他们第1场比赛和第2场比赛我会让结果总是在数组匹配1中我正在使用php:if(preg_match("/before(tofind)|(tofind)after/",$content,$result))returntrim($result[1]);谢谢 最佳答案 您可以使用branchreset特点:(

php - 从文本行返回 ip 地址的正则表达式

我正在尝试使用正则表达式来捕获文本行中的IP地址。现在有点搞砸了。当文本行不包含ip地址时,我的代码返回ip地址,有时它返回“Script)”。我究竟做错了什么?我想返回实际拥有它们的线路的ip地址,如果没有,则什么也不返回。正文2014-06-0211:53:54.410-0700Information638NICOLEClient"123456"openingaconnectionfrom"123456.local(207.230.229.204)"using"Go13.0.4[fmapp]".2014-06-0211:54:52.504-0700Information98NICO

php - 为什么 preg_match_all 返回两个匹配项?

我正在尝试使用preg_match_all来确定一个字符串是否在双引号之间有任何单词,但是它是重复的结果,第一个结果的两边都有两组双引号,其中作为被搜索的字符串只有一套。这是我的代码:$str='Teststart."Testmatchthis".Testend.';$groups=array();preg_match_all('/"([^"]+)"/',$str,$groups);var_dump($groups);然后vardump产生:array(2){[0]=>array(1){[0]=>string(17)""Testmatchthis""}[1]=>array(1){[0]

php - 如何从php中的字符串生成数组集

这是我的字符串#Jhon:经理#Mac:项目经理#Az:所有者我想要这样的数组$array=['0'=>'Manager','1'=>'ProjectManager','2'=>'Owner']我试过了,但每次只返回“经理”$string='#Jhon:Manager#Mac:ProjectManager#Az:Owner';getText($string,':','#')publicfunctiongetText($string,$start,$end){$pattern=sprintf('/%s(.+?)%s/ims',preg_quote($start,'/'),preg_quo

php - 如何在 PHP 中提取 URL 的一部分以删除特定部分?

所以,我在一个字符串中有这个URL:http://www.domain.com/something/interesting_part/?somevars&othervars在PHP中,除了interesting_part之外,我如何摆脱所有? 最佳答案 ...$url='http://www.domain.com/something/interesting_part/?somevars&othervars';$parts=explode('/',$url);echo$parts[4];输出:interesting_part

php - 验证 CSV 文件是否真的是 CSV 文件

我想确保我们的一位客户上传的CSV文件确实是PHP格式的CSV文件。我处理上传本身就好了。我不担心恶意用户,但我担心那些会尝试上传Excel工作簿的用户。除非我弄错了,否则Excel工作簿和CSV仍然可以具有相同的MIME,因此检查这还不够好。是否有一个正则表达式可以处理验证CSV文件是否真的是CSV文件?(我不需要解析...这就是PHP的fgetcsv()的用途。)我见过几个,但它们后面通常跟着评论,如“它不适用于案例X”。有没有其他更好的方法来处理这个问题?(我希望CSV包含名字/姓氏、部门名称……没什么特别的。) 最佳答案 与

php - 正则表达式 。*?对比*

我看到一篇关于正则表达式的php文章,它的语法中使用了(.*?)。据我所知,它的行为就像(.*)使用(.*?)有什么好处吗?我真的不明白为什么有人会使用它。 最佳答案 在大多数正则表达式中,*?产生式是非贪婪重复。这意味着.*?产生式首先匹配空字符串,然后如果失败则匹配一个字符,依此类推直到匹配成功。相比之下,贪婪产生式.*首先尝试匹配整个输入,如果失败,则尝试少一个字符。这个概念只适用于使用递归回溯来匹配歧义表达式的正则表达式引擎。理论上,他们匹配完全相同的句子,但由于他们首先尝试不同的事情,所以很可能一个比另一个快得多。当使用捕

php - 从 cURL 结果中提取 JSON

我是正则表达式的新手,我正在尝试从PHP中的cURL请求中获取JSON响应。我正在考虑使用preg_match_all。编辑:应该提到curl_exec()的完整响应包括header信息,这就是我需要提取JSON的原因。HTTP/1.1401UnauthorizedServer:Apache-Coyote/1.1WWW-Authenticate:Digestrealm="",qop="auth",[...etc]我想要的JSON看起来像这样(在所有header之后):{"requests":[{"request_id":10298,"name":"CURLTest2","submitt

php - 用空格分隔字符串

用所有空格分隔字符串的适当正则表达式是什么?两个标记之间也可以有多个空格,它应该忽略末尾的空格。我目前拥有的:这给了我以下输出:"unread;dev;test1;;"如您所见,它不会忽略末尾的空格,因为正确的输出应该是:"unread;dev;test1;" 最佳答案 您可以使用标志PREG_SPLIT_NO_EMPTY忽略空条目:$tagsArr=preg_split("/+/",$tags,-1,PREG_SPLIT_NO_EMPTY);演示:http://ideone.com/1hrNJ