PHP-код, сохраненный в базе данных, должен быть запущен - PullRequest
1 голос
/ 19 февраля 2012

У меня есть код удара, сохраненный в базе данных

<script type="text/javascript" src="$url/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="$url/js/ui.selectmenu.js"></script>

Я хочу получить этот код из базы данных и затем присвоить его переменной, а затем я хочу использовать $ url, который определен выше, в моем коде в файле.

Так вот сценарий

$ url определен в файле example.php foreg $ url = 'http://localhost';

получить кусок кода из базы данных (код выше)

назначить его переменной foreg $ content = (выборка кода из mysql здесь)

и в конце $ content должен содержать

<script type="text/javascript" src="http://localhost/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="http://localhost/js/ui.selectmenu.js"></script>

Этот код является просто примером кода, и у меня совершенно другой код, но сценарий примерно такой же. Любой может помочь, пожалуйста.

P.S И мой код может содержать url () (пользовательская функция, которую я создал в другом файле.)

Ответы [ 2 ]

2 голосов
/ 19 февраля 2012

Вы можете сделать что-то вроде этого:

$result = mysql_query("SELECT code FROM MyCodeTable WHERE MyColumn = 'something'");

if ($result && mysql_num_rows($result) > 0) {
    $row = mysql_fetch_object($result);

    $content = str_replace('$url', $url, $row->code);
}

Примечания. В идеале вы не должны получать данные из MySQL, как это, а использовать другой метод, например, PDO. Кроме того, как Seagull проиллюстрировал в своем примере, использование str_replace является более безопасным способом сделать это, чем eval, потому что вы не должны доверять данным, которые храните в своей базе данных.

2 голосов
/ 19 февраля 2012
$content = str_replace('$url', 'http://localhost', $content);
...