É muito pra lá de comum em formulários web recebermos um campo onde a variável é uma frase.
Dizendo em termos de programação, uma frase seria conjuntos de caracteres separados por
algum(ns) caractere(s).
No caso das frases usadas por nós humanos (sic), uma frase é formada por conjunto de letras separados por um caractere branco. No caso de datas, por exemplo '14/09/1970', a barrinha '/' separa os conjuntos de números.
Como se percebe, a 'frase' que se trabalha em programação é mais geral do que a nossa linguística. E nesse aspecto, um modo de separar esses conjuntos de caracteres é uma "necessidade básica" de todo programador.
Para fazer isso em PHP, considere a string '$frase'
$frase="O rato roeu a roupa do rei de roma.";
Para separar cada palavra dessa variável, usamos a função
explode():
$array=explode(" ",$frase);
e assim, cada célula de $array guardará cada palavra da frase. Exemplo:
print $array[3]; // Imprimirá a palavra 'roeu'.
Explicando o explode(): essa função pega uma delimitador (que pode ser um ou mais caracteres), separa a string de acordo com esse delimitador e retorna para uma string onde palavra separada fica numa célula sozinha. Sua forma é:
$array=explode($delimitador,$string);
No exemplo, o delimitador foi o caractere branco (o mais requisitado por aí). No caso da data, teríamos:
$data='14/09/1970';
$array=explode("/",$data);
print $array[2]; // Imprimirá '09'.
Mas o explode é mais geral que isso. Pegue a string:
$string="347812396fcsd7yc123vfqwe4jh23123e312";
Percebam que tem o conjunto '123' se repetindo nela. Esse pode ser o delimitador da string.
$array=explode("123",$string);
e teremos:
print $array[0]; // Imprime ''3478".
print $array[1]; // Imprime ''96fcsd7yc".
print $array[2]; // Imprime ''vfqwe4jh23".
print $array[3]; // Imprime ''e312".
Podem verificar.
Mas para trabalhar decentemente com essa separação de 'frases', precisamos saber quantas palavras há nela. Para isso fazemos:
$array=explode("123",$string);
$n_palavras=count($array);
for($i=0 ; $i < $n_palavras ; $i++ ){
print "$array[$i] \n";
}
Que imprimirá:
3478
96fcsd7yc
vfqwe4jh23
e312
Aqui a função
count() conta quantas células tem em $array e retorna esse número.
Não foi uma coisa rápida, mas espero que os iniciantes peguem esses conceitos, para daqui pra frente conseguirem caminhar um bom trecho da estrada sozinhos.
Até a próxima dica.
Bom dia pessoal tudo bem?
Estou com um problema um pouco sério, e espero a ajuda de vocês.
É o seguinte, eu tenho meu codigo:
<?php
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
$response = file_get_contents("https://api.binance.com/api/v1/ticker/allPrices", false, stream_context_create($arrContextOptions));
$string = $response;
$array = explode(',', $string);
foreach($array as $valores)
{
echo $valores . '<br />';
}
?>
Até ai funciona perfeitamente, com o seguinte resultado:
[{"symbol":"ETHBTC"
"price":"0.04947500"}
{"symbol":"LTCBTC"
"price":"0.00927500"}
{"symbol":"BNBBTC"
"price":"0.00181990"}
{"symbol":"NEOBTC"
"price":"0.00291900"}
{"symbol":"QTUMETH"
"price":"0.01460400"}
{"symbol":"EOSETH"
"price":"0.01598300"}
{"symbol":"SNTETH"
"price":"0.00012867"}
{"symbol":"BNTETH"
"price":"0.00523000"}
{"symbol":"BCCBTC"
"price":"0.09033300"}
{"symbol":"GASBTC"
"price":"0.00076500"}
{"symbol":"BNBETH"
"price":"0.03678000"}
{"symbol":"BTCUSDT"
"price":"6442.36000000"}
{"symbol":"ETHUSDT"
"price":"318.58000000"}
{"symbol":"OAXETH"
"price":"0.00052230"}
{"symbol":"DNTETH"
"price":"0.00007482"}]
Aquilo que eu gostaria e não consigo, seria:
pra cada linha imprimisse o nome da moeda por exemplo: ETHBTC e o seu respectivo valor: 0.04947500, separado pelos pares, por exemplo: BTC , ETH E USD , pois, temos varias moedas com diferentes pares.
E depois eu vou gravar no bco de dados, e sempre que o programa fazer o reload para atualizar os dados ele faria um upgrade na tabela, até ai isso é pra depois.
Aquilo que eu consigo entender, todas as informações estao dentro de uma string que começa com {[ e fecha }] e ai eu nao consigo mais fazer nada. rsrsrs
Desculpem o texto grande. rsrs
Se alguem poder me ajudar, ficarei mto grato.
Alexander