Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带preg_替换捕获的数学_Php_Regex - Fatal编程技术网

Php 带preg_替换捕获的数学

Php 带preg_替换捕获的数学,php,regex,Php,Regex,我试图将XML转换为HTML,这里是我试图解析的XML的一部分 数据1 数据2 数据3 数据4 这应该变成 数据1 数据2 数据3 数据4 我尝试了以下代码,但没有成功: $content=preg_替换“/”,$content 我无法使用捕获组进行计算,因此我的问题是如何捕获morerows属性值并将1添加到该值,然后用该值替换当前值。标记的数量可以在1到255之间。您必须使用/e修改器来完成此操作。请注意,使用htmlentities可以使视觉显示更加明显。但是,看看这里的代码,您的问题似乎

我试图将XML转换为HTML,这里是我试图解析的XML的一部分 数据1 数据2 数据3 数据4

这应该变成 数据1 数据2 数据3 数据4

我尝试了以下代码,但没有成功: $content=preg_替换“/”,$content


我无法使用捕获组进行计算,因此我的问题是如何捕获morerows属性值并将1添加到该值,然后用该值替换当前值。标记的数量可以在1到255之间。

您必须使用/e修改器来完成此操作。请注意,使用htmlentities可以使视觉显示更加明显。但是,看看这里的代码,您的问题似乎不太可能真正实现您想要的功能—数据1后跟数据2不太可能实现任何非常吸引人的功能—您通常希望跳过后续行中的行生成列。我建议改为研究XSL,这将为您提供一种更灵活的语言来执行这种标记匹配和重写-有关更多信息,请参阅。

您需要在preg\u replace中为模式指定“e”修饰符,以便将代码放入替换中,而不是文本。

除了/e修饰符之外,还必须将替换部分重写为true表情

 preg_replace('/<entry morerows="([\d]+?)">/e',
              '   "<tr rowspan=" . ("$1" + 1) . ">"   ',

请注意,单引号将整个表达式括起来。内双引号用于构造另一个字符串的可读性。多余的空格在PHP上下文中,只有双引号内的字符串才成为结果数据。

为什么不在PHP中使用SimpleXML解析XML?然后,您可以轻松地循环浏览条目。