PHP kullanıcı girişi temel bir hesap sistemi inşa

3 Cevap php

Kullanıcı bir miktar girin ör nerede ben bir komut dosyası yapmak istiyorum 4 ^ 5 + (56 +2) / 3 veya herhangi bir diğer temel matematik toplamı (hayır fonksiyonları vb) bunu nasıl yapıyor hakkında gitmek istiyorsunuz? Muhtemelen regex. Birisi bana doğru yönde işaret olabilir - Ben bu yüzden sadece başlangıç ​​ve ben oradan alacağım nereye bazı tavsiyeler gibi olur bu çok kolay olacak değil tahmin ediyorum.

3 Cevap

http://www.webcheatsheet.com/php/regular_expressions.php: Bu bir göz

Bu iyi bir Düzenli ifadeler intro ve nasıl PHP bunları kullanmak bulunuyor.

Evet, biri can (ve muhtemelen), sadece size bu işe gerekir ama sizin regex nasıl çalıştığını anlamak eğer çok yardımcı regex verir. Onlar korkunç görünüyorsun ama gerçekten kötü değil ...

Bu benim kod değil, ama hesaplamaları yapmak için Google Hesap kullanabilirsiniz sağlayan büyük bir PHP pasajı var. Yani sadece normal / FOLYO notasyonu ya da her neyse kullanarak (yani, "7 +3") sorgusu olabilir ve sonuç dönecektir.

http://www.hawkee.com/snippet/5812/

<?php

// Google calculator
function do_calculator($query){
    if (!empty($query)){
        $url = "http://www.google.co.uk/search?q=".urlencode($query);
        $f = array("Â", "<font size=-2> </font>", " &#215; 10", "<sup>", "</sup>");$t = array("", "", "e", "^", "");
        preg_match('/<h2 class=r style="font-size:138%"><b>(.*?)<\/b><\/h2>/', file_get_contents($url), $matches);
        if (!$matches['1']){
            return 'Your input could not be processed..';
        } else {
            return str_replace($f, $t, $matches['1']);
        }
    } else {
        return 'You must supply a query.';
        }
    }

?>

Bunu yapmak kolay yolu eval () ile. Eğer bir web formu keyfi girdi kabul ve bir sunucu üzerinde yürütme iseniz olsa da, yalnızca geçerli ifadeleri kabul için dikkatli olmak gerekir. Bunun için bir regex kullanın.