Foros del Web » Programando para Internet » PHP »

modificar script yahoo stock

Estas en el tema de modificar script yahoo stock en el foro de PHP en Foros del Web. Hola, Quisiera consultarles acerca de un script en php que compré hace tiempo y que básicamente muestra los precios de acciones cotizadas a través de ...
  #1 (permalink)  
Antiguo 27/02/2016, 08:31
 
Fecha de Ingreso: marzo-2008
Ubicación: España
Mensajes: 243
Antigüedad: 16 años
Puntos: 7
modificar script yahoo stock

Hola,
Quisiera consultarles acerca de un script en php que compré hace tiempo y que básicamente muestra los precios de acciones cotizadas a través de yahoo finance.

Este es el script, que ya he simplificado:

Código PHP:
<?php
$ch 
curl_init();
curl_setopt($chCURLOPT_URL'http://download.finance.yahoo.com/d/quotes.csv?s=AAPL&f=sl1d1t1c1ohgv&e=.csv');
curl_setopt($chCURLOPT_HEADERfalse);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
$output curl_exec($ch);
curl_close($ch);
$contents explode(','str_replace('$'''$output));
{
?>
 
Apple stock price:  <?php echo $contents[1?>

<?php
}
?>


<?php
$ch 
curl_init();
curl_setopt($chCURLOPT_URL'http://download.finance.yahoo.com/d/quotes.csv?s=GOOG&f=sl1d1t1c1ohgv&e=.csv');
curl_setopt($chCURLOPT_HEADERfalse);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
$output curl_exec($ch);
curl_close($ch);
$contents explode(','str_replace('$'''$output));
{
?>

Google stock price: <?php echo $contents[1?>
<?php
}
?>
Está tal cual venía, cambiando sólo las acciones, actualmente sólo muestra dos: Apple y Google. Entonces tengo varias consultas:
-no soy muy entendido en php, pero pese a ser un script de pago (bueno, tenía un precio testimonial), me esperaba que estuviera más compactado, no repetir dos veces las mismas cosas. Se podría compactar más, para no repetir básicamente el script dos veces?
-luego, lo estoy usando en un Wordpress y me da la impresión que cada vez que se refresca la página, coje los precios nuevos, como que lo consulta en tiempo real. Entonces me preguntaba si podría optimizarlo un poco en el sentido de tenerlo en una carpeta separada, que me coja los precios de las dos acciones 1-2 veces al día, que las guarde en base de datos, y luego en mi wordpress mostrar esos valores de la ddbb y no en tiempo real cada vez que refresca.

Espero sus comentarios y ayuda para ver si se puede hacer lo que comento. Saludos.
  #2 (permalink)  
Antiguo 28/02/2016, 03:02
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 5 meses
Puntos: 123
Respuesta: modificar script yahoo stock

Efectivamente cada vez que se ejecuta el Script trae los valores actuales de download.finance.yahoo.com/...

Puedes guardar el resultado en la bd sin problemas.

En cuanto a ejecutarlo 2 veces no, ya que cada uno de los valores que traes esta en una dirección diferente
Aún que si podrías ahorrarte un par de líneas, si inicias una sola vez curl y estableces las constantes de configuración de curl una sola vez .
  #3 (permalink)  
Antiguo 28/02/2016, 03:22
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 5 meses
Puntos: 123
Respuesta: modificar script yahoo stock

Podría quedar de la siguiente manera
Código PHP:
Ver original
  1. <?php
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, 'http://download.finance.yahoo.com/d/quotes.csv?s=AAPL&f=sl1d1t1c1ohgv&e=.csv');
  4. curl_setopt($ch, CURLOPT_HEADER, false);
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  6. $output = curl_exec($ch);
  7. /* No cerramos la conexion */
  8. //curl_close($ch);
  9. $contents = explode(',', str_replace('$', '', $output));
  10. /* esto es innecesario */
  11. //{
  12. ?>
  13.  
  14. Apple stock price:  <?php echo $contents[1] ?>
  15.  
  16. <?php
  17. /* esto es innecesario */
  18. //}
  19. ?>
  20.  
  21.  
  22. <?php
  23. /* no volvemos a iniciar curl por que aun esta abierta la conexion */
  24. //$ch = curl_init();
  25. curl_setopt($ch, CURLOPT_URL, 'http://download.finance.yahoo.com/d/quotes.csv?s=GOOG&f=sl1d1t1c1ohgv&e=.csv');
  26. /* esto ya se establecio al iniciar curl */
  27. //curl_setopt($ch, CURLOPT_HEADER, false);
  28. //curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  29. $output = curl_exec($ch);
  30. $contents = explode(',', str_replace('$', '', $output));
  31. /* esto es innecesario */
  32. //{
  33. ?>
  34.  
  35. Google stock price: <?php echo $contents[1] ?>
  36. <?php
  37. /* esto es innecesario */
  38. //}
  39. ?>

Y eliminando lo inecesario quedaria algo así:

Código PHP:
Ver original
  1. <?php
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, 'http://download.finance.yahoo.com/d/quotes.csv?s=AAPL&f=sl1d1t1c1ohgv&e=.csv');
  4. curl_setopt($ch, CURLOPT_HEADER, false);
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  6. $output = curl_exec($ch);
  7. $contents = explode(',', str_replace('$', '', $output));
  8. /* Guardamos el resultado en una variable*/
  9. $Apple_stock_price=$contents[1];
  10.  
  11. curl_setopt($ch, CURLOPT_URL, 'http://download.finance.yahoo.com/d/quotes.csv?s=GOOG&f=sl1d1t1c1ohgv&e=.csv');
  12. $output = curl_exec($ch);
  13. $contents = explode(',', str_replace('$', '', $output));
  14. /* Guardamos el resultado en una variable*/
  15. $Google_stock_price=$contents[1];
  16.  
  17. /*    Ahora que tenemos los resultados en variables podemos mostrarlo en pantalla o
  18.     o tambien hacer cualquier otra operacion con ellos como guardarlos en una BD */
  19. echo ' Precio Apple: '.$Apple_stock_price;
  20. echo ' Precio Google: '.$Google_stock_price;
  21. ?>
  #4 (permalink)  
Antiguo 28/02/2016, 09:02
 
Fecha de Ingreso: marzo-2008
Ubicación: España
Mensajes: 243
Antigüedad: 16 años
Puntos: 7
Respuesta: modificar script yahoo stock

Muchas gracias por tu aporte xerifandtomas! Todo un detalle la verdad, además bien explicado para beginners como yo. Ya sólo me faltaría guardarlo en ddbb y hacer un cron tab que lo inserte.
En este sentido, tengo algunas dudas:
-No recuerdo si me fijé, pero diría que aún con el script actual no se me descarga / guarda ningún archivo .csv. Entonces ese .csv de los links es como una forma de llamar los resultados.
-guardarlo en una tabla nueva en ddbb podría mirarlo o me ayudaría un amigo, no creo que sea complicado.
-lo que sí me pregunto es si una vez en ddbb, esos dos valores (precio de Apple y Google), cómo interactuan con la web? Puedo solicitarlos en cualquier archivo de WP como header.php por ejemplo? Es decir, en ese header.php tan sólo llamaría imprimir esas variables? O tendría que realizar un puente / conexión de la base de datos nueva en header.php, seleccionando la ddbb, la tabla, los campos? Tendría que dar de alta esas variables de alguna manera como en Symfony? Recuerdo que quise hacer algo así de sencillo en Symfony y no era tan directo: había que registrar esas variables para poder llamarlas. Me pregunto si en WP funciona parecido a Symfony o por el contrario sería más directo: como directamente imprimir esas variables sin nueva conexion a la ddbb sin registrarlas en ninguna parte...
  #5 (permalink)  
Antiguo 28/02/2016, 17:14
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 5 meses
Puntos: 123
Respuesta: modificar script yahoo stock

A ver si vas a guardar los datos en una BD, para poder imprimirlos en cualquier Script necesitarás primero leerlos de la BD antes de poder utilizarlos.

Igualmente si solo necesitas imprimir esos datos, y nada más, bien podrías hacerlo con sesiones y actualizar datos al inicio de la sesión y/o cuando pase determinado tiempo.

Etiquetas: stock, yahoo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:42.