<?php
function matchStrings($str) {
$ret = array();
//
$ret = explode("\n", $str);
foreach($ret as $asub) {
$asub = str_replace('x', '', $asub);
preg_match('/^(sh[0-9]+sh)+/', trim($asub), $ret['matches'][]);
}
$ret = array_unique($ret['matches']);
foreach($ret as $sfind) {
var_dump($sfind);
}
return $ret;
//
}
$test = <<<MULTI
xx xx sh1sh xx xx
xx sh2sh xx xx xx
xx sh**sh xx xx x
xx xx sh3xxxsh xx
xx sh4shsh5sh xxx
MULTI;
$matches = matchStrings($test);
print_r($matches);
Warning: Array to string conversion in /in/UMbhs on line 13
Warning: Array to string conversion in /in/UMbhs on line 13
Warning: Array to string conversion in /in/UMbhs on line 13
Warning: Array to string conversion in /in/UMbhs on line 13
Warning: Array to string conversion in /in/UMbhs on line 13
array(2) {
[0]=>
string(5) "sh1sh"
[1]=>
string(5) "sh1sh"
}
Array
(
[0] => Array
(
[0] => sh1sh
[1] => sh1sh
)
)
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Warning: Array to string conversion in /in/UMbhs on line 13
Warning: Array to string conversion in /in/UMbhs on line 13
Warning: Array to string conversion in /in/UMbhs on line 13
Warning: Array to string conversion in /in/UMbhs on line 13
Warning: Array to string conversion in /in/UMbhs on line 13
array(2) {
[0]=>
string(5) "sh1sh"
[1]=>
string(5) "sh1sh"
}
Array
(
[0] => Array
(
[0] => sh1sh
[1] => sh1sh
)
)
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
array(2) {
[0]=>
string(5) "sh1sh"
[1]=>
string(5) "sh1sh"
}
Array
(
[0] => Array
(
[0] => sh1sh
[1] => sh1sh
)
)
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
array(2) {
[0]=>
string(5) "sh1sh"
[1]=>
string(5) "sh1sh"
}
Array
(
[0] => Array
(
[0] => sh1sh
[1] => sh1sh
)
)
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
Notice: Array to string conversion in /in/UMbhs on line 13
array(2) {
[0]=>
string(5) "sh1sh"
[1]=>
string(5) "sh1sh"
}
Array
(
[0] => Array
(
[0] => sh1sh
[1] => sh1sh
)
)