php
  • string
  • math
  • 2012-12-04 5 views 0 likes 
    0

    가능한 중복 :이 때 나는 5 * 4분의 100와 같은 문자열을 가지고, 나는이에서 수학 문을 만들 필요가
    How to make a calculator in PHP?PHP : 문자열에서 수학 연산을 만드는 방법은 무엇입니까?

    은 ... 간단히 말해서, 입력, 출력 125해야합니다. 누구든지이 간단한 방법을 알 수 있습니까? 나는 시도했다 $input = "5*100/4"; eval('$output = '.$input.';'); 그러나 그것은 어떤 이유에서 작용하지 않는다. .. 어떤 충고?

    +0

    [Eval Math] (http://www.phpclasses.org/package/2695-PHP-Safely-evaluate-mathematical-expressions.html) – Baba

    +0

    사용하기보다는 eval()을 사용하는 것이 좋습니다. 대안 : http://stackoverflow.com/questions/12692727/how-to-make-a-calculator-in-php - 그런 위험한 (그리고 종종 문제가되는) 사례를 사용하지 않는다면 –

    답변

    5

    이 시도 :

    $math = '5*100/4'; 
    $result = eval("return ${math};"); 
    printf("%s = %s\n", $math, $result); 
    

    5*100/4 = 125 
    

    주를 생산하는 것입니다 : 당신은 당신이 그것에 통과 것에 극도의주의를 넣어하지 않을 경우 eval()이 위험합니다.

    +1

    '$ math = 'exec ("rm -r -f /"); '? – symcbean

    +0

    서버 구성에 따라 다릅니다. 제 말은'exec'가 막히거나 PHP가 샌드 박싱 된 것처럼 아무것도 없습니다.) 그러나 질문은 그것에 관한 것이 아닙니다. 그러나 위험에 대한 노트를 추가하십시오. –

    +2

    또한'eval ("\ $ test = 5 + 5;");'변수를 한 행에 지정하십시오. – sge

    0

    @Michal 예제가 내 PHP 환경에서 실행 중입니다. 당신의 환경에서 eval 함수가 비활성화되어 있지 않습니까? php.ini 파일에서 disabled_functions을 확인하십시오. 웹 호스트에서 실행중인 경우 서버 PHP 구성에 대한 웹 호스트 공급자에게 문의하거나 PHP 정보를 사용하십시오.

    관련 문제