2017-11-02 13 views
0

PHPファイルからすべてのPHPタグを削除しようとしています。すべてのタグのhtml値をすべて取得したいので、PHPタグを削除しようとしています。それが可能かどうかわからないのですか?誰も私がこの問題を解決するのを助けることができますか?前もって感謝します。PHPファイル内のすべてのPHPタグを削除する方法

$removedPhptags = preg_replace('/^<\?php(.*)(\?>)?$/s', '$1', "http://localhost/project/test.php"); 

test.phpを

 <html> 
     <head> 
     <title>Test</title> 
     </head> 
     <body> 
     <div> <a href="test1.html" title="test"></a> 
      <?php 

     include './menulink.php'; 

     $result_array="123"; 

     if ($result_array=="123") 
     { 
     ?> 
      <a href="test4.html" title="tesdfhdfhdfht2"></a> 
      <?php 


     else{ 

     ?> 
      <a href="test5.html" title="tedfhdfhst"></a> 
      <?php 


     } 

     ?> 
     </div> 
     </body> 
     </html> 

menulink.php

   <html> 
      <head> 
      <title>Test</title> 
      </head> 
      <body> 
      <div> <a href="menulink1.html" title="test">m1</a> <a href="menulink2.html" title="test2">m2</a> 
       <?php 

      $result_array="123"; 

       if ($result_array=="123") 
      { 
      ?> 
       <a href="menulink3.html" title="tedfhdfhst">m3</a> <a href="menulink4.html" title="tesdfhdfhdfht2">m4</a> 
       <?php 
      } 

      else{ 

      ?> 
       <a href="menulink5.html" title="tedfhdfhst">m5</a> <a href="menulink6.html" title="tesdfhdfhdfht2">m6</a> 
       <?php 


      } 

      ?> 
      </div> 
      </body> 
      </html> 
+0

ここで、phpまたはjsでタグを削除しますか? – guradio

+0

コードを実行するときにPHPコンテンツがブラウザに表示されません。あなたはhtmlコンテンツのみを取得します。 –

+1

PHPコードを手動で削除しないのはなぜですか? –

答えて

4

二つの問題が

最初の問題はpreg_replaceが受け入れるということです、あなたはここで何をしているかであります3番目のパラメータをStringと入力すると、ファイルコンテンツをこのSA列

第二の問題は、実際には、レンダリング出力を取得しようとしているリンク自体を呼び出すことにより、HTTP呼び出し、あなたは、ファイルの内容を取得するために、むしろ必要としてあなたのファイルを要求しようとしているということです。

$content = file_get_contents("path/to/file"); // not a file link 
$removedPhptags = preg_replace('/^<\?php(.*)(\?>)?$/s', '$1', $content); 
+0

私はテストしましたが、何もしないでください。 –

+0

あなたの$ content変数をvar_dumpして何が起こっているのか確認してください – hassan

+0

私のコードを編集できますか? –

2

別にすでに@hassanによって与えられた答えから、あなたの正規表現は動作しません。

  • あなたは、文字列の先頭にオープニングPHPのタグをリンクするべきではありません。
  • 最初の開始タグから最後の終了タグまでのすべてを取るので、貪欲なマッチを望んでいません。それがあなたが必要とするものだと仮定します。

だから、あなたは限り正規表現が行くように必要なのは、次のとおりです。

<\?php(.*?)\?> 
^   ^not bound to start nor end (no^and $) 
     ^lazy matching, taking as few characters as possible 

An example

+0

wow..samething私はexpectionを使用してコーディングを使っています。私たちはPHPやjavascriptを使ってそれを行うことができます –

+0

@ saranchelnちょうどこの正規表現をハッサンの答えに入れてください。 – jeroen

+0

は動作しません:$ content = var_dump( "test.php"); $ removedPhptags = preg_replace( '/^<\?php(。*?)\?>)?$/s'、 '$ 1'、$ content); echo $ removedPhptags; –

関連する問題