2013-02-23 4 views
-1

Я должен изменить цену от RON tu EUR ang Я получаю 0 в своей работе.

Код я использовал:

include('./panou/simple_html_dom.php'); 
    function euro() { 
     $dom= file_get_html("http://www.cursvalutar.ro/");; 
     foreach ($dom->find('tr') as $node) { 
     if (is_a($node->children(1), 'simple_html_dom_node')) { 
      if ($node->children(1)->plaintext == "Euro") { 
      $plain = explode(',', $node->children(2)->plaintext);   
     if(!isset($plain[0])!== false) { 
         echo("Nu are"); 
        } 
      elseif(stripos($plain[0], $plain[0])!== false{ 
         "4.30" 
        } 
      } 
     } 
    } 
    $plain[0]*=$koyos; echo "$plain[0]";} 

$plain[0] = 4.3780 и $koyos = 545.66 результат сценария 0

+4

Действительно ли это код PHP? Если да, то в чем причина 'if (...) {" 4.30 "}'? Какой смысл создавать и отбрасывать строковый литерал, если что-то истинно? ... не обращайте внимания на недостающие закрывающие круглые скобки. –

+0

@ Джан Дворжак: потому что «почему бы и нет?» – zerkms

+0

Содержит синтаксическую ошибку (видно после редактирования Cthulhu). Закрыть как слишком локализованный? –

ответ

0

Проблемы с кодом: $ koyos переменная не определена в функции евро(). Передайте его функции. Если вы хотите распечатать элемент массива, вы должны сделать так:

 echo $plain[0] 
    echo "{$plain[0]}" // this two prints what you want 

Это не хороший способ:

 echo "$plain[0]"  // the result of this might be "Array[0]" 

Но лучше заменить код с этим:

function getEuroRon(){ 
      if (!$file = fopen('http://download.finance.yahoo.com/d/quotes.csv?s=EURRON=X&f=sl1d1t1ba&e=.csv','r')){ 
        die('resource can not be read'); 
      } 
      $data = fgetcsv($file); 
      fclose($file); 
      return $data[1]; 
    } 
    $euroron = getEuroRon(); 
    /* 
    //... somewhere in code: 
    $koyos = 545.66; 

    //i dont recommend to use global variables but you might need this: 
    function euro(){ 
      global $koyos,$euroron; 
      print $euroron * $koyos; 
    } 
    */ 
    //This should be better instead the previous: 
    function euro($koyos){ 
      global $euroron; 
      print $euroron * $koyos; 
    } 
    euro(545.66); 

И вы можете позвонить в функцию euro(), где вам нужно распечатать результат ... Должен быть более удобный способ, но я не знаю других деталей вашего кода и пытался использовать t o решить свою проблему почти так же, как вы закодированы.

Или вы можете использовать немного лучшее решение: http://pastebin.com/HMp8SR2j

+0

Попробуйте это @NiTrO – Kovge

Смежные вопросы