Jahak, можно написать несколько вариантов и замерить
Jahak, можно написать несколько вариантов и замерить
Koenig, Хотя мой вариант хоть и ищет определенное слово по другому чем у тебя, мне кажется он будет медленнее чем на регулярке. Все из-за того, что я не очень хорошо дружу с ними или не хочу дружить![]()
Jahak, тут надо проверять, ещё зависит от сложности регулярки
дружить с ними не нужно прям очень, но знать основы придётся
# Koenig (10.04.2016 / 21:44)Спасибо. Я пошёл немного другим путём, но твой вариант будет лучше, для моих целей.
Sitego,
<?php
$file = 'file.txt';
$lines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$str = 'delete this';
$array = array();
foreach($lines as $line) {
if (!pr
Sitego, можно опять те регуляркой
или все же мутить другой вариант с поиском
strpos
<?php
//определенное слово, можно в виде массива если несколько или в виде строки, если слово одно
$search = ['delete', 'this'];
//путь к файлу
$filename = 'lol.txt';
//читает содержимое файла и помещает его в массив
$file = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
//фильтруем элементы массива с помощью функции поиска определенного слова
$file = array_filter($file, function($line) use ($search) {
return search($search, $line) !== true;
});
//пишем строки уже в новый файл без определенных(ого) слов(а)
file_put_contents('new_' . $filename, implode(PHP_EOL, $file));
/**
* Функция поиска определенного слова
* @param array|string $search Определенные слова или одно слово в виде строки
* @param string $string Строка в которой производится поиск определенного слова
* @return boolean
*/
function search($search, $string)
{
if (is_string($search)) {
$search = [$search];
}
foreach ($search as $s) {
if (mb_strpos($string, $s) !== false) {
return true;
}
}
return false;
}Jahak, работает, спасибо ![]()
C меня плюс позже, а то на сегодня лимит кармических плюсов закончился ![]()
Есть ли для регулярных выражений в php возможность использовать логические конструкции, как в perl например? Ну чтобы, допустим, удалить что-то, что не попадает под определённое условие.
Sitego, preg_replace_callback?
Короче вот, кури: http://php.net/manual/ru/ref.pcre.php