Json-Ausgabe mit Variablenabfrage nicht möglich

bei der Abfrage eines Kurses hab ich folgendes Problem:

trage ich das Kürzel von Hand ein, habe ich folgende Ausgabe:

$json_quote_one = file_get_contents('https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=AVTX&apikey=$api_key');

Array
(
    [Global Quote] => Array
        (
            [01. symbol] => AVTX
            [02. open] => 18.7000
            [03. high] => 34.4600
            [04. low] => 16.6500
            [05. price] => 21.7500
            [06. volume] => 31534634
            [07. latest trading day] => 2024-03-28
            [08. previous close] => 4.7500
            [09. change] => 17.0000
            [10. change percent] => 357.8947%
        )

)

Mache ich es über die Variable, sieht es so aus:

$json_quote_one = file_get_contents('https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=$top_one_ticker&apikey=$api_key');

und das Array ist leer
Array
(
[Global Quote] => Array
(
)

)
aber kopiere ich die Ausgabe in die Abfrage, geht es wieder. Die Variable mit dem Wert ist eine Stringvariable.

$top_one_ticker = GetValueString (14878);

function=GLOBAL_QUOTE&symbol=$top_one_ticker&apikey=$api_key'";

$json_quote_one = file_get_contents('https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=$top_one_ticker&apikey=$api_key');

$data_one = json_decode($json_quote_one,true);

print_r($data_one);

Teste mal

'https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol='.$top_one_ticker.'&apikey=$api_key'

Variablen werden bei einfachen Anführungszeichen nicht aufgelöst: PHP: Strings (Zeichenketten) - Manual
Michael

danke. So gehts nun. :blush:

ich hab hier noch ein zweites Fragezeichen. die Werte schreibe ich in eine Variable, dort wird der Wert auch korrekt ausgegeben. zB. 0.105, Zusätzlich schreibe ich den wert in eine Stringvarible, dort wird dieser gerundet auf 1. Ich finde meinen Fehler nicht.

Wie sieht den der Teil des Scriptes aus der den String erstellt.

$data_one_symbol    = $data_one['Global Quote']['01. symbol'];
$data_one_open      = $data_one['Global Quote']['02. open'];
$data_one_high      = SetValue(34608, $data_one['Global Quote']['03. high']);
$data_one_low       = SetValue(15511, $data_one['Global Quote']['04. low']);
$data_one_price     = $data_one['Global Quote']['05. price'];
$data_one_latest    = $data_one['Global Quote']['07. latest trading day'];
$data_one_ch_prev   = $data_one['Global Quote']['08. previous close'];
$data_one_change    = $data_one['Global Quote']['09. change'];
$data_one_ch_proz   = SetValue(17819, $data_one['Global Quote']['10. change percent']);

SetValue(34979, "$data_one_symbol - Low:$data_one_low - High:$data_one_high - $data_one_ch_proz");

Das kann so nicht funktionieren.
SetValue liefert folgendes :

Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis TRUE, andernfalls FALSE.

Also der Wert mit Setvalue in die Variable geschrieben und dann wird
$data_one_high mit TRUE ( also 1 ) gesetzt.

ohh je, danke. Manchmal wärs so einfach.