Вырезать из строки все после нужного символа

180
29 марта 2018, 09:58

Строка

Параметр|Номинальная мощность котла|14 кВт:20 кВт:30 кВт:40 кВт:50 кВт:65 кВт:80 кВт:97 кВт:150 кВт:200 кВт:250 кВт:300 кВт:400 кВт:500 кВт:600 кВт

и допустим после 4 или 6 : мне нужно все удалить в строке. Как это можно правильней реализовать ?

Answer 1

Можно написать пользовательскую функцию, которая будет принимать два параметра: первый - исходная строка, второй - число повторов для блоков, в которых указана мощность:

function replace_string($str, $int = 4) {
    $str = preg_replace("~([^:]+(?:\d+\s\D+:){{$int}}).*~", '$1', $str);
    return rtrim($str, ':');
}

Использование:

$str = 'Параметр|Номинальная мощность котла|14 кВт:20 кВт:30 кВт:40 кВт:50 кВт:65 кВт:80 кВт:97 кВт:150 кВт:200 кВт:250 кВт:300 кВт:400 кВт:500 кВт:600 кВт';
// с параметром по умолчанию
echo replace_string($str);
// с двумя параметрами
echo replace_string($str, 6);

Результаты:

Параметр|Номинальная мощность котла|14 кВт:20 кВт:30 кВт:40 кВт
Параметр|Номинальная мощность котла|14 кВт:20 кВт:30 кВт:40 кВт:50 кВт:65 кВт
Answer 2

Пока писали люди за что им огромное спасибо сделал сам и на несколько уже строк сразу.Понимаю что код не шикарен.

$one_post = $_POST['one'];
$del_number = $_POST['two'];
$one_post = explode(PHP_EOL,$one_post);
foreach ($one_post as $one_post_as){
    $one_post_as = explode(":", $one_post_as);
    array_splice($one_post_as,$del_number);
    $articles[] = $one_post_as;
}
foreach ($articles as $article_as){
    $article_as = implode(':',$article_as);
    $article_as_As[] = $article_as;
}
$article_as_As = implode(PHP_EOL,$article_as_As);
READ ALSO
Unix Timestamp + 5 минут

Unix Timestamp + 5 минут

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

222
Вопрос по функции function replace_text

Вопрос по функции function replace_text

Есть сайт, есть прямые ссылки на фотки в блоке контента, нужно этой функцией заменить их на вид САМИХ картинок

214
Pspell не работает

Pspell не работает

Доброго времени уважаемые коллеги! Помогите пожалуйста с pspellЯ выполнил следующее в консоли:

181
Как пропустить часть кода

Как пропустить часть кода

Есть ли способ "перепрыгнуть" часть php кода? Например:

306