Замените все (.) другое затем первое вхождение в PHP

Пример
Вход = 1.1.0.1
Ожидаемый вывод = 1.101

9
задан Cœur 30 April 2017 в 14:50
поделиться

5 ответов

Вы можете использовать метод Localecompare () .

string_a.localeCompare(string_b);

/* Expected Returns:

 0:  exact match

-1:  string_a < string_b

 1:  string_a > string_b

 */

Дальнее чтение:

--121 -1902789-

Вы могли бы использовать Substr () и Str_replace () довольно легко:

$str = '1.1.0.1';
$pos = strpos($str,'.');
if ($pos !== false) {
    $str = substr($str,0,$pos+1) . str_replace('.','',substr($str,$pos+1));
}
echo $str;
12
ответ дан 4 December 2019 в 10:32
поделиться
$count = 0;
$output = $input;
do {
    $output = preg_replace('/^(.+\.)(.+)\./', '$1$2', $output, -1, $count);
} while ($count != 0);
echo $output;
0
ответ дан 4 December 2019 в 10:32
поделиться
$input="1.1.1.1";
$s = explode(".",$input ) ;
$t=array_slice($s, 1);
print implode(".",array($s[0] , implode("",$t)) );

или

$input="1.1.1.1";
$s = explode(".",$input ,2) ;
$s[1]=str_replace(".","",$s[1]);
print implode(".",array($s[0] ,$s[1] ) );
2
ответ дан 4 December 2019 в 10:32
поделиться
$s = preg_replace('/((?<=\.)[^.]*)\./', '$1', $s);
6
ответ дан 4 December 2019 в 10:32
поделиться

I Хотя Substr_replace () будет работать здесь, но к сожалению нет ... вот регеекс подход:

$str = preg_replace('~(\d+\.)(\d+)\.(\d+)\.(\d+)~', '$1$2$3$4', $str);
0
ответ дан 4 December 2019 в 10:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: