Pobiegłem następujący skrypt korzystając php.exe
:awarii PHP na preg_replace
preg_replace('#(?:^[^\pL]*)|(?:[^\pL]*$)#u','',$string);
lub jego odpowiednika:
preg_replace('#(?:^[^\pL]*|[^\pL]*$)#u','',$string);
If $string="S"
lub $string=" ذذ "
to działa, jeśli string='ذ'
to daje �
że jest błędne, i jesli string='ذذ'
PHP zawiesza sie.
Ale działa w wersjach 4.4.0 - 4.4.9, 5.0.5 - 5.1.6.
Co jest nie tak?
Zobacz: http://3v4l.org/T3rpV
<?php
$string='دد';
echo preg_replace('#(?:^[^\pL]*)|(?:[^\pL]*$)#u','',$string);
Wyjście 5.4.0 - 5.5.0alpha6
Process exited with code 139.
Wyjście 5.2.0 - 5.3.22, 5.5.0beta1
Wyjście 4.4.0 - 4.4.9, 5.0.5 - 5.1.6
دد
wyjście dla 4.3.11, 5.0.0 - 5.0.4
Warning: preg_replace(): Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 7 in /in/T3rpV on line 3
Output do 4.3.0 - 4.3.10
Warning: Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 7 in /in/T3rpV on line 3
to wywala tutaj też. PHP 5.4.7. –
Mogę potwierdzić, że zawiesza się również w najnowszej wersji beta ** PHP 5.5.0beta2 ** (wydanej 28 marca)! – ComFreek
@ComFreek Czy moja odpowiedź również powoduje awarię? –