2017-06-28 11 views
1

いくつかのHTMLタグを保存するように頼んでいるトピックがたくさん見つかりましたが、PHPタグを保持したいものは見つかりませんでした。php strip_tags、PHPタグを許可しますか?

私はこのような何かしたい:私は絶対にPHPを維持する必要があり、私は、ファイルにこの文字列の内容を配置する必要があり

var_dump($myBeautifulString); 
==> 
'Hello, my name is <?php echo $firstName ?> and I'm <?php echo $age ?> my other div content' 

$myString = '<i> Hello, my name is <?php echo $firstName ?> and I'm <?php echo $age ?> </i> <div> my other div content </div>'; 
$myBeautifulString = strip_tags($myString, '<?php'); 

、その結果、私は希望をタグ!塗りつぶす値は後にのみ与えられます。

+0

。 –

+0

私はファイルに$ myBeautifulStringを置く必要があることを知っています。例を簡略化するだけでした。 – Didi

+0

このようには動作しません。 –

答えて

0

を実行している

echo $myString = "<i> Hello, my name is $firstName and I'm $age </i> <div> my other div content </div>"; 

注:

HTMLのコメントとPHPタグも削除されます。 これはハードコードされており、allowable_tagsで変更することはできません。

マイemphesis

あなたは、マニュアルを読んでいると主張するが、この重要な注意点に気づいていないように思われます。したがって、<?php ... ?>を文字列内に保持するソリューションは、strip_tags関数をまったく使用せず、削除するカスタムタグリストを使用して独自の関数を作成することです。

基本例のみ):

function my_strip_tags(string $string, array $tags){ 
    $outputString = $string; 
    foreach($tags as $tag){ 
     $outputString = str_ireplace($tag, '', $outputString); 
    } 
    unset($tag); 
    return $outputString; 
} 
+0

このメモを読んでいませんでした....ごめんなさい。そうです、それは私が最初にやったことでしたが、もしそれが一行でできたら、それは素晴らしいことでした:)誠にありがとうございました。 – Didi

+0

@Martinああちょっと3分遅れ: –

0

代わりに文字列を連結してみませんか?

+0

私は文字列を連結することができません、私は別のAPIを介してphpタグで文字列を回復します – Didi

0

strip_tagsの2番目のパラメータは、許可されるタグを指定します。その他のタグはすべて削除されます。

あなたは単一引用符で文字列を持っているとの一部として単一qouteを使用する場合は二つのパラメータ

+0

私はphpタグをalllowed持っている、私はPHPタグを許可したいが、それはこのように動作しません。私はすでにドキュメントを読んで – Didi

+0

上記の答えで言及したサイトにアクセスしてください、あなたは2つのパラメータを分離する必要があります –

+0

はい、質問を書いている間、タイプミスでした。私は自分のコードでそれを持っていた、まだ動作しません。 – Didi

0
<?php 
    echo $myString = "<i> Hello, my name is {$firstName} and I\'m {$age} </i> <div> my other div content </div>"; 

    ?> 

を分離するために、追加していないより多くの情報

のための訪問https://www.w3schools.com/php/func_string_strip_tags.aspあなたの文字列を壊すよりも文字列がこのようにあなたの文字列をエスケープするI\'m

+0

私は口ひげを使用することはできません、それはPHPのタグ内にある必要があります... – Didi

+0

@Didi私は自分のコードを更新しました。 – mayank

+0

申し訳ありませんが、私の実際の文字列には一重引用符がありません。この文字列は例のためだけです^^ '一重引用符と二重引用符の問題ではありません – Didi

0

開始単一のコードを削除し、以下のような二重のコード内の文字列を囲み、the manualからcode

+0

これは変数を埋める方法ですが、私のここでのポイントはありません。文字列の内容をファイルの中に入れる必要があります。文字列にphpタグが必要なので、 "<?php"を保持する必要があります – Didi

1

私はこれを行うにはtoken_get_all、およびstr_replaceを使用:

<?php 

$myString = '<i> Hello, my name is <?php echo $firstName ?> and I\'m <?php echo $age ?> </i> <div> my other div content </div>'; 

function remove_html_tag($input) 
{ 
    $to_return = $input; 
    $tokens = token_get_all($input); 
    foreach ($tokens as $token) { 
    if (token_name($token[0]) == 'T_INLINE_HTML') { 
     $to_return = str_replace($token[1], strip_tags($token[1]), $to_return); 
    } 
    } 
    return $to_return; 
} 

function strip_html($input) 
{ 
    return filter_var($input, FILTER_CALLBACK, ['options' => 'remove_html_tag']); 
} 

var_dump(strip_html($myString)); 

出力:

string(94) " Hello, my name is <?php echo $firstName ?> and I'm <?php echo $age ?> my other div content " 

をデモ:https://eval.in/823595

参照:そのようなストリングが構文エラーであるコード強調表示が示すよう

+0

ありがとう!それは私が今すぐ解決しているソリューションよりもきれいです:)素敵な1つ! – Didi

関連する問題