@JTester

Как удалить символы и поставить по середине?

Здравствуйте!

У меня есть такой код:

$str = '&cT&eПривет, привет';

Как мне удалить &c, &e? То есть, если в тексте есть такой знак и потом буква, то удалить полностью этот символ и буква которая после символа.

И еще, скажем у меня есть еще второй текст 'привет', как мне расчитать буквы $str и поставить вот это второе слово по середине этого $str? Исключительно пхп PHP_EOL
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 2
Immortal_pony
@Immortal_pony Куратор тега PHP
function cleanText(string $text) {
    $cleaned = [];
    
    foreach (str_split($text) as $i=>$letter) {
        if ($letter === "&" || $text[$i-1] === "&") {
            continue;
        }
        
        $cleaned[] = $letter;
    }
    
    return implode("", $cleaned);
}


upd: второй вопрос

function justify(string $someWord, string $otherWord) {
    $spaces = "";
    
    if (strlen($someWord) !== strlen($otherWord)) {
        $diff = abs(mb_strlen($someWord)-mb_strlen($otherWord));
        $offset = ceil($diff/2);
        $spaces = str_repeat(" ", $offset);
    }
    
    if (mb_strlen($someWord) >= mb_strlen($otherWord)) {
        return $someWord . PHP_EOL . $spaces . $otherWord;
    } else {
        return $spaces . $someWord . PHP_EOL . $otherWord;
    }
}
Ответ написан
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Второй вопрос - используем mb_strlen и str_pad (примерно так)
<?php
$str1 = 'Привет';
$str2 = 'test';

$max_len = max(mb_strlen($str1),mb_strlen($str2));

echo str_pad(
    $str1,
    $max_len,
    " ",
    STR_PAD_BOTH
) . PHP_EOL ;

echo str_pad(
    $str2,
    $max_len,
    " ",
    STR_PAD_BOTH
) . PHP_EOL ;


Share PHP online
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы