草庐IT

PHP 分解字符串,但将引号中的单词视为单个单词

如何分解以下字符串:"foobar"ANDbar"foo"AND"foofoo"lorem"impsum"进入array('"foobar"','ANDbar','"foo"','AND','"foofoo"',"lorem",'"impsum"')我检查了这个答案:https://stackoverflow.com/a/2202489/11398085但如果我的字符串中没有空格链接就无法工作。$text='"foobar"ANDbar"foo"AND"foofoo"lorem"impsum"';preg_match_all('/"(?:\\\\.|[^\\\\"])*"|\S+/',

php - 需要使用 str_replace 或任何其他方式翻译字符串中的单词

我有一个包含英文字符的XML提要,我需要将其翻译成我的语言。问题是它不是翻译确切的字符串,而是翻译每个相似的词。有没有办法只翻译完整的字符串而不是单词中的所有内容?示例:$string="RedCellisverygood.Conditionisnew.Butnobodybuysit.";$words=["RedCell","Condition","no","Red","new"];$translations=["RedCell","Stav","ne","Červený","nový"];$string=str_replace($words,$translations,$string

php - 使用后视组还是捕获组更好?

我不确定其中一个是否比另一个“更好”,以及为什么会这样,但我有一个看起来像这样的原始字符串:$string='/random_length_user/file.php';现在,有两种方法来匹配它,第一种,使用我的新friend,look-behind,第二种,不使用:preg_match("%(?他们按顺序返回:Array([0]=>random_length_user)Array([0]=>/random_length_user[1]=>random_length_user)本质上,我在$capture[0]中使用look-behind得到我想要的结果,而在$capture[1]中不

php安全问题

这是漫长的一天,但我似乎无法在自己的脑海中选择哪个更好,或者我是否应该同时使用两者。基本上我应该使用什么来清理用户输入的值。它是htmlentities还是preg_match函数?然后,如果该值进入sql查询,我将使用mysql_real_escape_string函数,但只有在我将其更改为准备好的语句之后,我才能删除它。或者同时使用htmlentities和preg_match是个好主意吗? 最佳答案 你为什么不直接在你的previousquestion中问这个?在进行任何转义之前使用preg_match,以确保数据符合您期望的

用于验证 URL 的 PHP 正则表达式

我正在寻找一个合适的正则表达式来匹配一个URL(一个带有方案、域、路径等的完整URL)我通常会使用filter_var但在这种情况下我不能,因为我必须支持PHP我在网上搜索过,但找不到任何我确信会万无一失的东西,而我在SO上所能找到的只是人们说要使用filter_var。有人有用于此的正则表达式吗?我的代码(只是为了让您看到我想要实现的目标):functionvalidate_url($url){if(function_exists('filter_var')){returnfilter_var($url,FILTER_VALIDATE_URL);}returnpreg_match(R

php - 正则表达式:将所有 URL 设为绝对

我需要一种方法来获取一段HTML代码并使所有URL成为绝对的。我尝试采用各种正则表达式示例,但没有成功。这些是要求:替换HREF和SRCurl如果URL已经是绝对的,则保留它如果URL是绝对的,替换它每个HTML都来自一个已知的URL(example.com/folder/file.html),可用于创建绝对URL。例如:src="image.png"变成src="http://example.com/folder/image.png"href="/home.html"变成href="http://example.com/home.html"我找到了一个完全符合我需要的功能:http:

PHP 从字符串中提取文本 - 修剪?

我有以下XML:tag:search.twitter.com,2005:22204349686如何将第二个冒号后的所有内容写入变量?例如22204349686 最佳答案 if(preg_match('#.*?:.*?:(.*?)#',$input,$m)){$num=$m[1];} 关于PHP从字符串中提取文本-修剪?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3578979

php - 如何从 PHP 中的括号之间获取所有内容?

Array([1]=>putreturns(between)paragraphs[2]=>(for)linebreak(add)2spacesatend[3]=>indentcodeby4(spaces!)[4]=>tomakelinks)想要获取括号内的文本(对于每个值):只参加第一场比赛从值中删除此匹配项将所有匹配项写入新数组After函数数组应该如下所示:Array([1]=>putreturnsparagraphs[2]=>linebreak(add)2spacesatend[3]=>indentcodeby4[4]=>tomakelinks)Array([1]=>betwee

php - 如何在递归正则表达式中进行反向引用匹配?

我有这样一个字符串:$data='id=1username=foobarcomment=Thisisasamplecomment';我想删除第三个字段中的\n(comment=...)。我有这个正则表达式可以满足我的目的但不是很好:preg_replace('/\bcomment=((.+)\n*)*$/',"comment=$2",$data);我的问题是第二组中的每个匹配项都会覆盖前一个匹配项。因此,而不是有这个:'...comment=Thisisasamplecomment'我最终得到了这个:'...comment=comment'有什么方法可以将中间反向引用存储在正则表达式中

PHP 正则表达式显示问题

我正在尝试创建一个用于对书名进行排序的字段,该字段会去除前导“A,An,The”并将其附加到逗号和空格之后的强项。因此“TheRoad”将变成“Road,The”听起来很简单,但下面的代码中有些东西会导致IE(没有其他浏览器)吐出一大块乱码。$node_field[0]['value']=preg_replace('/^(A|An|The|a|an|the)(.*)/',"$2\x00,$1",$node->title); 最佳答案 你应该使用更像的东西$node_field[0]['value']=preg_replace('/^