2016-05-14 1 views
0

私はGoogleで何を検索する必要があるのか​​よく分からず、しばらくの間これを苦労しています。データベースからのコンテンツをPHPとして処理

私は自分のCMSをプロジェクト用に書いており、例えばデータベースに格納されたコンテンツを処理することに固執しています。上記の例では

This is a link to a <a href="<?php get_url_by_id(487174) ?>">related page</a>. 

私は、URLが変更された場合、この方法では、それは問題ではない、それは常に最新の状態になり、そのIDによってページのURLを取得しています。

問題はPHPがそれを文字列として認識し、処理しないことです。

私は問題を回避するためにファイルに内容を書き出し、ファイルにPHPインクルードを使用してファイルを削除します。私はこれを効率的とは見ておらず、より良い解決策を望んでいます。

+0

「what」を見て処理しますか? –

+0

'get_url_by_id'のコードはどこですか? –

+0

<?php echo get_url_by_id(487174)?>コードは私の質問には関係ありません。 URLを挿入するだけです。 – CProetti

答えて

1

PHPは、の文字列がなので、その内容を文字列として読み込みます。

文字列関数をPHPとして作成するには、PHPのeval()関数を使用する必要があります。

// The string that is loaded from the DB, or wherever 
$string = 'This is a link to a <a href="<?php get_url_by_id(487174) ?>">related page</a>.' 

// Run the string as PHP code (notice the "echo" command) 
eval("echo {$string}"); 

しかしこれは、非常に危険なことができます!これを行うつもりなら、実行されている文字列を知っていることを確かめてください! eval()関数はその中に置かれているPHPコードを実行するためです!サイトを破壊しても犬を蹴るPHPコード!私はあなたの正確なシナリオを知りませんが、私は一般的にeval()可能な限りを使用しないことを助言する

-

eval()機能についての詳細はPHP Docs for eval()

で見つけることができます。通常は、eval()機能を使用するより安全な方法があります。

+0

@PedroLobito DBから引き出されている文字列の中で**呼び出されているPHP関数を参照しています。これはPHPが文字列として解釈するため、まったく呼び出されていません。 –

+0

私は関数 'get_url_by_id'を参照しています –

+0

@PedroLobitoはい、それはOPの質問と私の答えとは無関係です。 ''これはrelated pageへのリンクです。 ''は文字列です。 –

関連する問題