Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Констатнта в тексте

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dubasua
Отправлено: 17 Декабря, 2012 - 01:33:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




Доброго времени!
Есть некий текстовый файл, с которого считываю содержимое

Объявлена константа

В текстовом файле несколько раз встречается строка 'MY_CONST', можно как нибудь подставить значение константы без replace?
(Добавление)
Блин.... не в ту тему написал....

(Отредактировано автором: 17 Декабря, 2012 - 01:34:40)

 
 Top
Toxa
Отправлено: 17 Декабря, 2012 - 07:04:26
Post Id



Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2008  


Помог: 8 раз(а)

[+]


а чем str_replace не устраивает?


-----
Удобный сервис для хранения файлов
 
 Top
dubasua
Отправлено: 17 Декабря, 2012 - 10:10:54
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




Потому как констант в тексте может быть больше чем одна, и их не нужно отслеживать, а просто заменить на их значение.
 
 Top
EuGen Администратор
Отправлено: 17 Декабря, 2012 - 10:21:51
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




dubasua пишет:
'MY_CONST'

- это строковый литерал, не являющийся константой в терминах php. Указать без кавычек и в начале файла определить константу через define.
Замена потребуется, судя по данным, в любом случае.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Мелкий Супермодератор
Отправлено: 17 Декабря, 2012 - 10:24:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ну так чем при этом не подходит str_replace-то?
Для полного перебора - есть get_defined_constants


-----
PostgreSQL DBA
 
 Top
dubasua
Отправлено: 17 Декабря, 2012 - 10:29:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




Строку можно записать и без кавычек, просто MY_CONST, можно даже записать $my_val или {$my_val}, и перед считыванием текста из файла определить $my_val, да записать можно как угодно, только что бы заменить потом было проще вопрос в том как все это дело заменить на значение, так как $my_val, может быть не один десяток.
 
 Top
EuGen Администратор
Отправлено: 17 Декабря, 2012 - 10:33:03
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




У одной константы - одно значение. Сообразно этому имеется противоречие желаемого (множество значений) результата и желаемого (константы) инструмента.
Либо же нужно использовать несколько констант.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dubasua
Отправлено: 17 Декабря, 2012 - 10:37:07
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




Мелкий пишет:
Ну так чем при этом не подходит str_replace-то?
Для полного перебора - есть get_defined_constants

Это примерно вот так
PHP:
скопировать код в буфер обмена
  1. foreach ($const as $name=>$const){
  2.   $text = preg_replace ($name,$const,$text)
  3. }


Получается если в массиве будет 35 элементов, он его и будет реплейсить 35 раз, и такую операцию нужно сделать не один раз, сильно трудоемко получится.
 
 Top
EuGen Администратор
Отправлено: 17 Декабря, 2012 - 10:41:26
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




dubasua
str_replace принимает на вход и массивы (а preg_replace здесь можно не использовать).


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dubasua
Отправлено: 17 Декабря, 2012 - 10:54:11
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




EuGen пишет:
str_replace принимает на вход и массивы

Сейчас попробую ему подсунуть ассоциативный массив.
(Добавление)
Просто я думал еще вот как, если делать вот так
PHP:
скопировать код в буфер обмена
  1. $name = "some_variable";
  2. $text = "some text with $name";

В $text залетает значение $name, а если также сохранить и в текстовом файле, и после считывание как-то "Запустить" или еще как то, считанный текст, так что бы все $name заменились на реальные переменные.
 
 Top
EuGen Администратор
Отправлено: 17 Декабря, 2012 - 11:00:22
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




dubasua
Нет, ассоциативный не принимается. Но всегда есть array_keys и array_values


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dubasua
Отправлено: 17 Декабря, 2012 - 11:08:02
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




Ассоциативный принимается, только он по ключам не работает, нужно строго по порядку, иначе получается каша. Спасибо Вам EuGen, буду варьировать Ваш вариант.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB