Помощник
|
php найти, заменить или добавить строку. Нужна помощь. |
scanread
|
Сообщение
#1
|
||
|
|
||
|
|||
_AXE_ |
15.4.2014, 18:22;
Ответить: _AXE_
Сообщение
#2
|
|
Дело даже не в кавычках. Если Вам заменить в PHP-файле, то может следует прибегнуть к стандартным инструментам (поиск/замена) текстовых редакторов?
PS: в коде ошибки везде, где только это возможно, даже в форматировании кода Сообщение отредактировал _AXE_ - 15.4.2014, 18:24 -------------------- |
|
|
x64 |
15.4.2014, 18:31;
Ответить: x64
Сообщение
#3
|
|
регулярки для данной задачи лишнее. функции f*() — тоже
Код $fileop = 'test.php';
$oldstr = "title=\'$title\',"; $newstr = "title=\'$title\',\n title_en=\'$title_en\',"; $buf = file_get_contents($fileop); $buf = str_replace($oldstr, $newstr, $buf); file_put_contents($fileop, $buf); echo 'Строка заменена'; |
|
|
scanread
|
Сообщение
#4
|
|
_AXE_, безусловно, текстовым редактором проще всего найти и заменить. Зачем тогда я вопросом этим задался? Вполне логично предположить, что необходимо решить вопрос с помощью php, а не чем-то другим.
x64, спасибо. Проверил. Написало, что строка изменена, но ее почему-то не изменило.... Еще вопрос, как дописать именно после title='$title', - title_en='$title_en', ? Сообщение отредактировал scanread - 15.4.2014, 18:52 -------------------- |
|
|
x64 |
15.4.2014, 19:10;
Ответить: x64
Сообщение
#5
|
|
смотрите, в чём дело: кавычки ' и " (одинарная и двойная) трактуются совершенно по разному
код: Код $oldstr = 'title=\'$title\','; echo $oldstr; выведет Цитата title='$title', в то время, как в коде: Код $title = 'aga'; $oldstr = "title=\'$title\',"; echo $oldstr; будет производиться подстановка переменной $title в строку, т. е. результатом работы будет уже строка Цитата title='aga', исходя из того, какое поведение требуется, нужно использовать одинарные иди двойные кавычки как дописать именно после title='$title', в этом случае, можно использовать функцию strpos() для поиска с последующими substr() для вырезания нужных мест с дальнейшей конкатенацией. но через замену проще. Сообщение отредактировал x64 - 15.4.2014, 19:13 |
|
|
scanread
|
Сообщение
#6
|
|
x64,
дело в том, что необходимо найти участок кода Код title='$title', Т.е., он уже использует кавычки. И заменить его, выходит, на Код title='$title', title_en='$title_en', Или же: после одного дописать с новой строки другое. Но везде в переменных используются эти кавычки и заодно якобы и переменная. Как же тогда записать правильно? UPD: докумекалсО... Код $oldstr = 'title=\'$title\','; $newstr = 'title=\'$title\', title_en=\'$title_en\','; $buf = file_get_contents($fileop); $buf = str_replace($oldstr, $newstr, $buf); file_put_contents($fileop, $buf); echo 'Строка заменена'; спасибо. Сообщение отредактировал scanread - 15.4.2014, 19:20 -------------------- |
|
|
x64 |
15.4.2014, 19:19;
Ответить: x64
Сообщение
#7
|
|
|
тогда используйте одинарные кавычки
Код $fileop = 'test.php'; $oldstr = 'title=\'$title\','; $newstr = 'title=\'$title\',' . "\n" . ' title_en=\'$title_en\','; $buf = file_get_contents($fileop); # $cnt — количество замен в строке $buf = str_replace($oldstr, $newstr, $buf, $cnt); file_put_contents($fileop, $buf); if ($cnt) echo 'Строка заменена'; else echo 'Строка не найдена'; вы молодец
Сообщение отредактировал x64 - 15.4.2014, 19:25 |
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Нужна програмка постинга в свои сайты | 0 | kasey7 | 269 | Вчера, 19:54 автор: kasey7 |
|
Создать видеоканал лучше в ютуб или телеграм? | 20 | uahomka | 3532 | 20.4.2024, 20:56 автор: Vmir |
|
Требуется помощь по сайту на "ВордПресс" Закрылся доступ в панель администратора |
15 | Tia2 | 2369 | 17.4.2024, 0:54 автор: diviner99 |
|
Если в сайт с одними ключами, которые там долго, добавить новую рубрику с новыми ключами | 2 | Tutich | 1319 | 16.4.2024, 8:27 автор: Tutich |
|
Если статья не в индексе Google - она уникальна или нет? | 5 | uahomka | 1440 | 3.4.2024, 23:56 автор: Liudmila |
Текстовая версия | Сейчас: 23.4.2024, 22:15 |