2012-05-20 29 views
5

Sorunum var, metni alıp PHP olarak metin yürütmek istiyorum, ancak bunu nasıl yaparım? PHP olarak nasıl metin yürütülür

$tweetcpitems->post('statuses/update', array('status' => wordFilter("The item Blue has    been released on Club Penguin."))); 
$tweetcpitems->post('statuses/update', array('status' => wordFilter("The item Green has been  released on Club Penguin."))); 

Şimdi problem ben bu metni yakaladı olması ve bunu yapmak, nasıl bir PHP komut dosyası olarak çalıştırmak istiyorum: Mesela ben bir .txt dosyasında bu kodu var? Lütfen yardım et!

+2

Umarız kullanıcı girdisiyle bunu yapıyorsanız bunun hacklenilmesi için bir davet olduğunu biliyor musunuz? –

+7

Eğer "eval" kullanmayı soruyorsanız, ** kesinlikle ** eval kullanmıyor olmalısınız. – rdlowrey

cevap

0

PHP eval kullanarak metni değerlendirebilir; Ancak, çok önemli bir sorumluluk reddi için aşağıda okuyun!

eval() dil yapısı çok rastgele PHP kodunun yürütülmesine izin verdiği için çok tehlikelidir. Dolayısıyla kullanımı engellenir. Bu kurguyu kullanmaktan başka bir seçenek olmadığını dikkatlice doğruladıysanız, önceden verilmiş olan verileri doğru bir şekilde doğrulamadan, kullanıcı tarafından sağlanan verileri iletmemeye özellikle dikkat edin.

// $result is a string containing PHP code. Be sure you trust the source of 
// the PHP code prior to running it! 
eval($result); 
0

Metin ve eval aynı komut ancak daha önce belirtildiği gibi hem çalıştırabilirsiniz. Güvenlik gerçekten sıkı olmalı. Yine de, düzgün bir şekilde kullanırsanız, değerlendirme fonksiyonu gerçekten güçlüdür. Aşağıdaki kodu deneyin.

$b = 123; 
$a = "hello <?php echo 'meeeee'; ?>. I just passed $b from the mother script. Now I will pass a value back to the mother script" . '<?php $c; $c = 1 + 8; ?>' . 
    "I was call within a function, therefore my variable can't passed to the global script. Nonetheless, let try something globally" . 
    "<?php 
     global \$d; 
     \$d = 'I am now a global var. Take care though, don\\'t let anyone edit your file' ; 
     "; 

function parseTxtAsCode($invalue){ 
    if(!is_string($invalue)) return false; 
    eval('?>' . $invalue); 
    echo "\n\n\n\n Can't believe I got this from my child: $c \n"; 
} 

parseTxtAsCode($a); 
echo "\n\n\n I am global and this is what I got from the eval function: $d"; 
İlgili konular