URL Scraping和显示输出 - 将输出作为$ Array而不是value

时间:2014-11-15 10:23:58

标签: php arrays url screen-scraping

我是PHP编码的新手,但熟悉这种机制。我需要一个插件来从ASX(澳大利亚证券交易所)提取短代码中指定的任何公司代码的报价。

我已经完成了代码并在Wordpress上加载了插件,而不是显示公司符号的价格,它将输出显示为“$ Array”,而不是值。

请看一下:

这是我的代码:

add_shortcode( 'asx-prices', 'asx_prices_shortcode' );

function asx_prices_shortcode( $atts ) {

extract( shortcode_atts( array(
    'symbol'        => '',
), $atts ) );

// Obtain Quote Info    
$data = file_get_contents( 'http://www.asx.com.au/asx/markets/priceLookup.do?by=asxCodes&asxCodes='. "{$symbol}" );

preg_match('/<td class="last">(.*)<\/td>/i', $data, $quote);

$output .= '<div class="asx_prices_symbol">Symbol: '. "{$symbol}" .'</div>';
$output .= '<div class="asx_prices_quote">Latest Price: $'. $quote .'</div>';

return $output;

}

这是输出:

Symbol: QVE
Latest Price: $Array
Symbol: QVEO
Latest Price: $Array

这是预期的结果:

Symbol: QVE
Latest Price: 0.985
Symbol: QVEO
Latest Price: 0.038

这是我关于Stack Overflow的第一篇文章,我想参与更多的PHP,这就是我今天开始的原因,我将来需要更多的专家帮助。 谢谢你的时间。

2 个答案:

答案 0 :(得分:0)

preg_match将结果放在$quote变量中,创建一个数组 您会在$quote[1]内找到自己的价值。

http://php.net/manual/en/function.preg-match.php

答案 1 :(得分:0)

preg_match返回一个数组。机会$quote[0]将返回价格。

尝试print_r($quote);,看看你想要的结果是否在数组中,以及它所在的位置。