2012-02-19 13 views
0

私は打撃コードはデータベースに保存されている実行する必要がありますPHPコードは

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

私は、データベースからこのコードをフェッチして、それを変数に割り当てると、私は$のURLを使用したいです私のコードでファイルで定義されています。だからここ

は= 'のhttp:// localhost' の

$ URLがファイルexample.php foregの$のURLで定義されているシナリオです。

可変foregの$コンテンツ=に割り当てデータベースからのコードの一部(上記のコード)

フェッチ(コードは、MySQLからフェッチこちら)

と終了$コンテンツに

を含むべきです
<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> 

このコードは単なるコード例であり、全く異なるコードですが、シナリオはまったく同じです。誰でも助けてください。

PSそして、私のコード(URLが含まれている可能性があり)(。私は別のファイルで作成したカスタム機能)

+2

何を試しましたか?それは文字列をエコーし​​ています。あなたのタイトルが言うように、データベースに格納されたPHPコードを評価することについて話していますか? –

+0

実際には、関数のeval()型を使用してコードを評価したいと考えています。残念ながらevalは機能しません。私は前にevalを使ったことはありませんでしたが、ただ聞いたことがあります –

+0

eval()をプログラムに依存してページを構築する必要がある場合は、どうやって作業しているかに間違いがあります。他に方法がないと確信していますか?あなたはテンプレートシステムを考えましたか?(dwoo、twig、smarty) –

答えて

2
$content = str_replace('$url', 'http://localhost', $content); 
+0

と評価されています。私はそのコード例だけを述べました。私のコードには、複数のファイルにまたがって定義された$ urlのような多くの変数が含まれています。だから私はある種のeval()機能を使う必要があります。残念ながらevalは機能しません –

2

あなたはこのような何か行うことができます:

$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); 
} 

注:理想的にはあなたがwouldnをこのようにMySQLからデータを取得するのではなく、PDOのような別の方法を使用してください。また、彼の例で説明したSeagullのように、str_replaceを使用すると、データベースに格納したデータを信頼してはならないので、evalよりも安全な方法です。

+0

私のコードに$ urlのような45種類の変数が含まれているとどうなりますか? –

+0

この例では、データベースにマークアップを格納していることを前提としています(ただし、悪いことです)。 'str_replace'で配列を渡すことができますが、多くのものを置き換える必要がある場合は、それは面倒な作業になる可能性があります。これが当てはまるならば、evalを使うのは確実に簡単でしょう。 – Andy0708

+0

上記の私のコメントをお読みください。 –