$str = '345.45';
$int = (int) str_replace('.', '', $str);
var_dump($int); // int(34545)
$float = preg_replace('~\d+\K(\d{2})$~', '.$1', $int);
$float = (float) number_format(($float * 0.15), 1, '.', '');
var_dump($float); // float(51.8)
$total = numberOfReplacements('Привeт', 'Привет', 'Cyrillic');
echo "Замена киррилицы латиницей: $total симв.<br>";
$total = numberOfReplacements('hаbr', 'habr', 'Latin');
echo "Замена латиницы киррилицей: $total симв.";
function numberOfReplacements(string $input, string $original, string $pattern): int
{
$pattern = preg_quote($pattern, '~');
$match = preg_match_all("~\p{{$pattern}}~u", $input);
$total = mb_strlen($original);
return $total - $match;
}
$filename = 'text.txt';
$total = 0;
$buffer = [];
$h = fopen($filename, 'r');
while (! feof($h)) {
if ($total > 100) {
// var_export($buffer); // Вывести или выполнить обработку каждых 100 строк
$total = 0;
$buffer = [];
}
$buffer[] = fgets($h);
$total++;
}
fclose($h);
if (! empty($buffer)) {
// var_export($buffer); // Вывести или выполнить обработку оставшихся строк
}
Стандартный вариант регулярки такой: [\s\p{P}]
\s - символьный класс пробельных символов
\p{P} - символьный класс знаков пунктуации
[\s\p{P}] - соответствие в этой позиции строки пробелу или знаку пунктуации
$str = '1222542264222';
$str = preg_replace('~(2)\1{2,}~', '$1', $str);
echo $str;
$text_lenght = 3;
$charset = 'qwertyuiopasdfghjklzxcvbnm';
$results = [];
create_words($text_lenght);
sort($results);
foreach ($results as $i => $result) {
echo ++$i . '. ' . $result . '<br>';
}
function create_words(string $width, int $position = 0, string $base_string = ''): void
{
global $text_lenght, $charset, $results;
for ($i = 0, $j = strlen($charset); $i < $j; ++$i) {
if ($position < $width - 1) {
create_words($width, $position + 1, $base_string . $charset[$i]);
}
if (strlen($base_string . $charset[$i]) <= $text_lenght) {
$results[] = $base_string . $charset[$i];
}
}
}
$text = '+380685476574';
echo preg_replace('~\+\d{3}\K(\d{2})(\d{3})(\d{2})(\d{2})~', ' ($1) $2 $3 $4', $text); // +380 (68) 547 65 74
$b = $a = range('a', 'z');
$result = [];
foreach ($a as $_1) {
foreach ($b as $_2) {
$result[] = "$_1-$_2";
}
}
print_r($result);
<?php
$calc = function(){
$act = ''; $a = $b = 0;
extract($_POST);
$a = (int) $a;
$b = (int) $b;
return preg_match('~^[*/+-]$~', $act) ? eval("return $a $act $b;") : false;
};
$_SERVER['REQUEST_METHOD'] != 'POST' ?: print $calc();
?>
<form method="post">
<input type="text" name="a" />
<input type="text" name="b" />
<?php foreach (['+', '-', '*', '/'] as $act): ?>
<input type="submit" name="act" value="<?=$act?>" />
<?php endforeach; ?>
</form>
$text = 'https://www.labnol.org/internet/duplicate-gmail-draft-emails/29124/';
$text = preg_replace(['~^.+/(?=\w+-)~', '~/(\d+)\D*~'], ['', '-$1'], $text);
echo $text; // duplicate-gmail-draft-emails-29124