2017-02-16 9 views
0

私はPrism.jsプラグインを使用しています。あなたのコードを入力/貼り付け、「提出」をクリックすることができるテキストフィールドがあり、テキストエリアの下のdivにそのフィールドが表示されます。また、リストから使用している言語を選択できるドロップダウンも含まれています。 <>タグが表示されない限り(つまり、HTMLタグ、C/C++のプリプロセッサディレクティブなど)、すべてがうまくいきます。私がダウンロードページからプラグインを見逃したのか誰にも知られていますか? 私は、PHPは、ドロップダウンからクラス名を追加する場所の代わりにPrism.jsがマークアップを表示していません

<pre><code class="language-java"></code></pre> 

で特定の言語を指定するので、私はそれを作ったところにそれを作りました。

ここに私のコードです。私はすべてがそれらのタグを除いて取り組んでいる、言ったように:

HTML:

<select required name="language-select" class="form-control" id="language-selector"> 
      <option value="" selected disabled>Language</option> 
      <option value="markup">Markup</option> 
      <option value="apacheconf">Apache Conf</option> 
      <option value="aspnet">ASP.NET</option> 
      <option value="bash">Bash</option> 
      <option value="c">C</option> 
      <option value="csharp">C#</option> 
      <option value="cpp">C++</option> 
      <option value="css">CSS</option> 
      <option value="java">Java</option> 
      <option value="javascript">JavaScript</option> 
      <option value="matlab">MatLab</option> 
      <option value="objectivec">Objective C</option> 
      <option value="perl">Perl</option> 
      <option value="php">PHP</option> 
      <option value="powershell">PowerShell</option> 
      <option value="python">Python</option> 
      <option value="ruby">Ruby</option> 
      <option value="scala">Scala</option> 
      <option value="smalltalk">Smalltalk</option> 
      <option value="sql">SQL</option> 
     </select> 
     <br/> 
     <button id="drive_submit_btn" class="btn btn-md" type="submit">Submit</button> 
    </div> 
</form> 
<div class="show-code"> 
    <script src="custom-js/prism.js"></script> 
    <!-- Get language selection from dropdown and append it to language class. Echo the text as highlighted code --> 
    <pre><code class="language-<?php echo $language?>"><?php echo $user_code; ?></code></pre> 

</div> 

関連PHP:

$user_code = ""; 
$language = ""; 
if (!empty($_POST["code_input"])) { //get input from textarea and dropdown 
$user_code = $_POST["code_input"]; 
$language = $_POST['language-select']; 

}

ここでのスクリーンショットです<>タグを除いてコードが動作することを示します。

"送信" する前に、私はC言語を選択: Choosing Language

そしてここでは、提出した後です。 #includeに<>タグがないことに注目してください。私はこれを解決する方法を知らない。助言がありますか? enter image description here

答えて

0

私は、任意の '<' や '>' 文字がそれぞれ

&lt; and &gt; 

に交換しなければならないことをthis StackOverflow questionから発見。テキストが動的なので、これはいくつかの考えを持っていた.....

ここに私の問題が修正された。私はPHPのstr_replace()関数を使って '<'か '>'の出現を見つけ、それらの文字で置き換えます。

$user_code = str_replace(array('<','>'), array('&lt;', '&gt;'), $_POST["code_input"]); 

そして、それは視覚的にどのように見えるかを示すために、ここでの結果のスクリーンショットは、次のとおりです:

screenshot of fixed markup

ここケースの誰もが、PHPで同じ問題に遭遇しでそれを行うためのコードです

両方とも同じ結果が得られます。ブーム。 :-)

関連する問題