2017-06-19 13 views
0

データスクレイピングでテストしています。私が掻いている出力はパーセントです。だから私は基本的には望ましいことではないしかしパーセントが実際にも番号の前に表示されている問題がありますphp echo "%"が複数回表示されています

echo $ret_[66]; 

ある実際の数出力の終わりに

echo "%<br>"; 

に平手打ち。これが出力されます。

% 
-0.02% 

私が取得しようとしていることは明らかに私はPHPと間違って何かをやっているだけで-0.02%

であるのに対し。私は本当にフィードバック/ソリューションを感謝します。ありがとうございました!

全コード:別々次のPHPコードで

<?php 

error_reporting(E_ALL^E_NOTICE^E_WARNING); 

include_once "global.php"; 

$doc = new DOMDocument; 

// We don't want to bother with white spaces 
$doc->preserveWhiteSpace = false; 
$doc->strictErrorChecking = false; 
$doc->recover = true; 
$doc->loadHTMLFile('http://www.moneycontrol.com/markets/global-indices/'); 

$xpath = new DOMXPath($doc); 
$query = "//div[@class='MT10']"; 
$entries = $xpath->query($query); 

foreach ($entries as $entry) { 
    $result = trim($entry->textContent); 
    $ret_ = explode(' ', $result); 
    //make sure every element in the array don't start or end with blank 

    foreach ($ret_ as $key => $val){ 
     $ret_[$key] = trim($val); 
    } 

    //delete the empty element and the element is blank "\n" "\r" "\t" 
    //I modify this line 
    $ret_ = array_values(array_filter($ret_,deleteBlankInArray)); 

    //echo the last element 
    echo $ret_[66]; 
    echo "%<br>"; 
} 
+0

"数字の前に現れる"とループ( 'foreach')は、行の1つが' echo $ ret_ [66];で何もエコーしていない可能性が高いことを示します。 –

+0

私はそれがこれと関係していると思いますか? 'deleteBlankInArray'おそらく試してみてください:' if($ ret_ [66]){echo $ ret_ [66];エコー "%
"; } ' –

+0

ありがとうございます、私はあなたが正しいと思います。私は実際にもっと簡単な解決策を見つけました。これはもう一つのPHPファイルを下に作ることです<?php echo "%
"; ?>私はあなたの解決策を検討しますが、より効率的かもしれません。ありがとうございました。 – Masteryogurt

答えて

0
<?php 
echo "%<br>"; 



?> 

。同じことをしますか?

+0

確かに、非常に明白な回避策です。 – Masteryogurt

+0

もちろん、それぞれの後に実行され、すべてが実行されるという事実のために問題は解決しますが、それは正しい方法ではありません。常に正しい方法でコードを作成してください。 –

関連する問題