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 :: HTML + PHP -> PHP

 PHP.SU

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


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

> Описание: как строку подстроить под php и вывестb
koldya
Отправлено: 28 Апреля, 2010 - 21:16:42
Post Id



Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Янв. 2010  
Откуда: Украина, Снежное


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




Здравствуйте, у меня стала проблема что бы вывести строку типа " text <?=$x ?> text " а мне надо превратить с помощью регулярных выражений или чего то другого в строку типа " <?='text'.$x.'text'; "


-----
Помогите в создании CMS!!!
ICQ 473319369
 
 Top
movEAX
Отправлено: 29 Апреля, 2010 - 08:38:00
Post Id



Частый посетитель


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


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




Если я правильно понял задачу, то попробуйте так:
PHP:
скопировать код в буфер обмена
  1. $pattern = '@(.+?)<\?=\$(\w+?)\s*\?>(.+)@s';
  2. $replacement = '<?=\'$1\'.$2.\'$3\'; ?>';
  3. preg_replace ($pattern, $replacement, $text);


-----
армия.. самое убогое место
 
 Top
JustUserR
Отправлено: 03 Мая, 2010 - 01:56:45
Post Id



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


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


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




koldya пишет:
Здравствуйте, у меня стала проблема что бы вывести строку типа " text <?=$x ?> text " а мне надо превратить с помощью регулярных выражений или чего то другого в строку типа " <?='text'.$x.'text'; "
То есть вам нужно превратить данные типа файла PHP-скрипта в чистый PHP-код который может быть выполнен с помощью функции eval например
В таком случае используйте набор из трех регулярных выражений - для обработки вывода до первого <?php-тега и после последнего ?>-тега - а также посредине
CODE (htmlphp):
скопировать код в буфер обмена
  1. s/^(.*?)\<php/<?php echo "$1"; \n/igs
  2. s/^(.*?)?\>(.*?)\<php/echo "$1";\n/igs
  3. s/?\>(.*?)$/echo "$1"; ?>\n/igs
Не забывайте что подставляемые таким образом в echo данные нужно проэкранировать - соответственно перед выполнением такого сгенерированного кода


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
koldya
Отправлено: 03 Мая, 2010 - 13:28:37
Post Id



Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Янв. 2010  
Откуда: Украина, Снежное


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




JustUserR, Если у меня есть строка

CODE (htmlphp):
скопировать код в буфер обмена
  1. $text = "<p>Тут какой то текст</p> <? include('post.php'); ?> <p>И тут текст'</p> ";

Тогда мне надо что делать что бы получилось:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $text = "<p>Тут какой то текст</p> <? include('post.php'); ?> <p>И тут текст'</p> ";
  2. s/^(.*?)\<php/<?php echo "$text"; \n/igs
  3. s/^(.*?)?\>(.*?)\<php/echo "$text";\n/igs
  4. s/?\>(.*?)$/echo "$text"; ?>\n/igs

или как???


-----
Помогите в создании CMS!!!
ICQ 473319369
 
 Top
JustUserR
Отправлено: 04 Мая, 2010 - 09:45:54
Post Id



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


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


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




koldya пишет:
Тогда мне надо что делать что бы получилось:
Приведенные регулярные выражения выбирают весь текст вне тегов <?php ?> и соответственно заменяют его на echo - то есть приведенный вами тексто должен преобразоваться в один <?php ?>-блок и внутри него добавлятся два вывода echo
Сами регулярные выражения написаны на Perl - и их нужно обрамить в кавычки и положить вовнутрь функции preg_replace


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
DeepVarvar Супермодератор
Отправлено: 04 Мая, 2010 - 10:08:15
Post Id



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


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


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




а зачем такой гемор?

хтмлэнтитиес(ваша строка)
 
 Top
koldya
Отправлено: 04 Мая, 2010 - 12:55:55
Post Id



Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Янв. 2010  
Откуда: Украина, Снежное


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




DeepVarvar пишет:
а зачем такой гемор?
хтмлэнтитиес(ваша строка)

htmlentities — Преобразует символы в соответствующие HTML сущности.
А как оно мне тут поможет???

(Отредактировано автором: 04 Мая, 2010 - 12:58:19)



-----
Помогите в создании CMS!!!
ICQ 473319369
 
 Top
DeepVarvar Супермодератор
Отправлено: 04 Мая, 2010 - 14:01:27
Post Id



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


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


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




ну а ты попробуй выведи в браузер строку которую тебе надо, предварительно сделав как я сказал... и увидишь КАК поможет.. ))
 
 Top
JustUserR
Отправлено: 04 Мая, 2010 - 15:54:52
Post Id



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


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


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




DeepVarvar пишет:
Хтмлэнтитиес(ваша строка)
Здесь вы к сожалению неправы - поскольку речь по сути идет о переводе обычного кода PHP-скрипта позволяющего делат HTML-встаки - в вид исполняемого PHP-кода с заменой всех текстовых блоков на опертор echo


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
koldya
Отправлено: 04 Мая, 2010 - 16:17:00
Post Id



Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Янв. 2010  
Откуда: Украина, Снежное


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




JustUserR пишет:
Сами регулярные выражения написаны на Perl - и их нужно обрамить в кавычки и положить вовнутрь функции preg_replace

Можешь написать а то я уже не соображаю Улыбка


-----
Помогите в создании CMS!!!
ICQ 473319369
 
 Top
JustUserR
Отправлено: 05 Мая, 2010 - 09:16:47
Post Id



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


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


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




koldya Перепишите оставшиеся выражения вот в таком виде
PHP:
скопировать код в буфер обмена
  1. preg_match("/^(.*?)\<php/ig","<?PHP echo \"\1\"; \n",&array())


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 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