Я новичок в кодировании 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
Это мой первый пост о переполнении стека, я хочу больше вникать в PHP, поэтому я начал сегодня, и в будущем мне понадобится больше помощи экспертов.
Спасибо за ваше время.
preg_match
возвращает массив. скорее всего $quote[0]
вернет цену.
попробуй сделать print_r($quote);
и видеть, находится ли желаемый результат в массиве и где он находится.
preg_match
положить результаты в $quote
переменная, создающая массив.
Вы найдете свою ценность внутри $quote[1]
,