
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
|
![]() Пользователь ![]() ![]() Профиль Группа: Пользователь Сообщений: 81 Пользователь №: 46556 На форуме: Карма: ![]() |
Здравствуйте уважаемые специалисты.
У меня есть такая функция: $old_cat = $_POST['cat_old']; с помощью которой производится поиск в файлах в определенной строке, и если есть совпадение, то происходит замена этой строки. Точнее получается так, что заменяется не вся строка целиком, а только найденное слово. Например, есть две категории: 'Very' 'Very Good' и если я меняю категорию 'Very' на 'Very Very', то замена происходит везде где встречается 'Very' и получается так: 'Very Very' 'Very Very Good'. Но как сделать так, чтобы замена происходила только тогда, когда есть полное совпадение между имеющимся значением и строкой целиком? Я пытаюсь делать такое сравнение: function replace_txt($folder_rec , $old_cat , $new_cat) { но при этом тогда вообще нигде замены не происходит. Подскажите, пожалуйста, верный вариант решения задачи. |
![]() |
|
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 696 Пользователь №: 39616 На форуме: Карма: 71 ![]() |
FILE_IGNORE_NEW_LINES может помочь:
$file_rec_content = file($file_path_rec, FILE_IGNORE_NEW_LINES); Ну и тогда потребуется при записи в файл добавить переносы строк: file_put_contents($file_path_rec, implode("\n", $file_rec_content)); То есть в итоге будет так: $file_rec_content = file($file_path_rec, FILE_IGNORE_NEW_LINES); -------------------- |
![]() |
۩
Дата
|
![]() Пользователь ![]() ![]() Профиль Группа: Пользователь Сообщений: 81 Пользователь №: 46556 На форуме: Карма: ![]() |
brevis, спасибо вам большое за ответ! Но у меня получилось даже немного проще, просто использовал trim, сделал вот так:
if(trim($file_rec_content[1]) == $old_cat) { //сравниваю старое значение со строкой и теперь всё работает. brevis, как всегда искренне благодарен за помощь! |
![]() |
![]() ![]() ![]() |