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 :: eval

 PHP.SU

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


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

> Без описания
Telnet
Отправлено: 25 Июня, 2019 - 16:20:00
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


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




Всем привет.
Есть кусок кода который храниться в базе, примерно в таком виде
при попытке перед выводом обработать его функцией eval возникает ошибка

PHP:
скопировать код в буфер обмена
  1.  
  2. $file = '<table id="table-places" class="table mtd">
  3.         <tbody>
  4.                 <tr>
  5.                         <td rowspan="5"><i class="fa fa-user"></i></td>
  6.                         <td><span class="button-checkbox"> <button type="button" class="btn btn-sm" v-bind:class="isSelected(45)" v-on:click="select(45)" :disabled="isDisabled(45, <?PHP echo (in_array(33,$arrPlaces) ? true : false); ?>)">45 </button> <input type="checkbox" v-model="inputs" name="places[]" value="45" class="hidden"> </span>
  7.                         </td>
  8.         </tbody>
  9. </table>';
  10. $arrPlaces = [31,32,33,34,35];
  11. echo eval($file);
  12.  


Выводит ошибку
Parse error: syntax error, unexpected '<', expecting end of file in \replace.php(11) : eval()'d code on line 1

А мне бы хотелось что вместо блока
<?PHP echo (in_array(33,$arrPlaces) ? true : false); ?>
просто выводился результат работы функции in_array

(Отредактировано автором: 25 Июня, 2019 - 16:21:45)

 
 Top
Мелкий Супермодератор
Отправлено: 25 Июня, 2019 - 17:12:43
Post Id



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


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


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




Невнимательно документацию читаете. В eval передаётся PHP код.
Если вы напишете


вам ведь будет очевидно, что <table это что-то странное и явно не код? Потому и для eval это ошибка.

eval = evil tldr писать лениво.


-----
PostgreSQL DBA
 
 Top
Telnet
Отправлено: 25 Июня, 2019 - 17:19:07
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


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




Переписал код на такой все равно получаю ошибку

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $arrPlaces = [31,32,33,34,35];
  4. $file = 'echo \'<table id="table-places" class="table mtd">
  5.         <tbody>
  6.                 <tr>
  7.                         <td rowspan="5"><i class="fa fa-user"></i></td>
  8.                         <td><span class="button-checkbox"> <button type="button" class="btn btn-sm" v-bind:class="isSelected(45)" v-on:click="select(45)" :disabled="isDisabled(45,'. (in_array(33,$arrPlaces) ? true : false) .')">45 </button> <input type="checkbox" v-model="inputs" name="places[]" value="45" class="hidden"> </span>
  9.                         </td>
  10.         </tbody>
  11. </table>\';';
  12.  
  13. echo eval("?>" . $file . "<?php");


Parse error: syntax error, unexpected end of file in \replace.php(12) : eval()'d code on line 8
 
 Top
Мелкий Супермодератор
Отправлено: 25 Июня, 2019 - 17:31:56
Post Id



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


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


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




Фокус хотите?

CODE (htmlphp):
скопировать код в буфер обмена
  1. melkij@melkij:~$ php -d short_open_tag=on test.php
  2. PHP Parse error:  syntax error, unexpected end of file in /home/melkij/test.php(22) : eval()'d code on line 15
  3. melkij@melkij:~$ php -d short_open_tag=off test.php
  4. echo '<table id="table-places" class="table mtd">
  5.  
  6.         <tbody>
  7.  
  8.                 <tr>
  9.  
  10.                         <td rowspan="5"><i class="fa fa-user"></i></td>
  11.  
  12.                         <td><span class="button-checkbox"> <button type="button" class="btn btn-sm" v-bind:class="isSelected(45)" v-on:click="select(45)" :disabled="isDisabled(45,1)">45 </button> <input type="checkbox" v-model="inputs" name="places[]" value="45" class="hidden"> </span>
  13.  
  14.                         </td>
  15.  
  16.         </tbody>
  17.  
  18. </table>';<?php


Что происходит?

Спойлер (Отобразить)


-----
PostgreSQL DBA
 
 Top
Telnet
Отправлено: 26 Июня, 2019 - 11:14:01
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


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




Цитата:
После <?php пробельный символ обязателен

Спасибо
 
 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