PHP:正则表达式,用于用硬破空格替换数字之间的空格 - php

我想创建一个正则表达式,根据我的国家印刷规则,将常规空间替换为难以破解的空间。它不应触摸HTML标签。

这些示例中的所有空格都应艰辛:

号码

1 000
10 000
100 000
1 000 000
etc..

日期

17. 6.
17. 6. 2012

我想出了:

$pattern = '/((\d\.?)\s(\d))(?=[^>]*(<|$))/';
$text = preg_replace($pattern, '$2&nbsp;$3', $text);

它可以完成所有这些操作,但:
17. 6. 2012
它不会替换第二个空格,所以结果是->

17.&nbsp;6. 2012

感谢您的任何帮助!

参考方案

(\d)正在吃掉第一个尾随数字,并且如果尾随数字只有一个数字,则在下一次传递时将没有足够的剩余数字可匹配。

例如,以下工作正常:12 34 5612. 34. 56。但是这些不包括:1 2 31. 2. 3

可以将(\d)移入前瞻,以避免吃掉它:

$pattern = '/((\d\.?)\s)(?=\d[^>]*(<|$))/';
$text = preg_replace($pattern, '$2&nbsp;$3', $text);

将此与@flec的后向使用结合起来:

$pattern = '/(?<=\d)(\.?)\s(?=\d[^>]*(<|$))/';
$text = preg_replace($pattern, '$1&nbsp;', $text);

php ziparchive类源代码 - php

Improve this question 我如何获取ziparchive类本身的源代码。 参考方案 假设您在谈论PHP ZipArchive class:下载PHP source code并查找适当的文件。如果您希望源代码是PHP代码,您可能会感到失望,因为源代码是用C语言编写的。或者,也可以在PHP Github Development Reposito…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…