cURL : curl_init(); curl_setopt();

curl_init();により初期化
接続を行うためのcurlオブジェクトを作成します。
curl_setopt();転送用オプションを設定します。GETの場合はURLだけでOK。
curl_exec:cURL:セッションを実行する
CURLOPT_URL:provide the URL to use in the request
CURLOPT_RETURNTRANSFERにtrueを設定すると、文字列を返すようになる。変数に保存する

<?php
	
$url = "http://www.fsa.go.jp/";
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
var_dump($html);
curl_close($ch);

?>

http情報の取得

<?php
	
$url = "http://finance.yahoo.co.jp/";
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$info = curl_getinfo($ch);
curl_close($ch);

var_dump($info)

?>

array(23) { [“url”]=> string(27) “http://finance.yahoo.co.jp/” [“content_type”]=> NULL [“http_code”]=> int(0) [“header_size”]=> int(0) [“request_size”]=> int(0) [“filetime”]=> int(0) [“ssl_verify_result”]=> int(0) [“redirect_count”]=> int(0) [“total_time”]=> float(0) [“namelookup_time”]=> float(0) [“connect_time”]=> float(0) [“pretransfer_time”]=> float(0) [“size_upload”]=> float(0) [“size_download”]=> float(0) [“speed_download”]=> float(0) [“speed_upload”]=> float(0) [“download_content_length”]=> float(-1) [“upload_content_length”]=> float(-1) [“starttransfer_time”]=> float(0) [“redirect_time”]=> float(0) [“redirect_url”]=> string(0) “” [“primary_ip”]=> string(0) “” [“certinfo”]=> array(0) { } }

const()

クラス内で定義するオブジェクト定数

<?php
	
class ConstClass
{
	const CONSTSTR1 = '米ダウ工業株';
	const CONSTSTR2 = '日経平均株価';

	function showConst(){
		echo self::CONSTSTR1."<br>";
		echo self::CONSTSTR2;
	}	
}

$Class = new ConstClass();
$Class->showConst();

?>

米ダウ工業株
日経平均株価

Microsoft translator

<?php
const APPID = '';
$text = '6日の東京株式市場で日経平均株価は前日比の下げ幅が一時1000円を超えた。1039円安い2万1642円まで下落する場面があった。';
$to = 'en';

$ch = curl_init('https://api.datamarket.azure.com/Bing/MicrosoftTranslator/v1/Translate?Text=%27'.urlencode($text).'%27&To=%27'.$to.'%27');
curl_setopt($ch, CURLOPT_USERPWD, APPID. ':'.APPID);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);
$result = explode('<d:Text m:type="Edm.String">', $result);
$result = explode('</d:Text>', $result[1]);
$result = $result[0];
echo $text."->".$result;
?>

渋谷109周辺(0.2km)のtweetを取得する

すごいね、テクノロジー

<?php

require 'TwistOAuth/build/TwistOAuth.phar';

$consumer_key = '';
$consumer_secret = '';
$access_token = '';
$access_token_secret = '';

$connection = new TwistOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);


$tweets_params = &#91;'q' => 'ラクオリア' ,'count' => '10'];
$tweets = $connection->get('search/tweets', $tweets_params)->statuses;

/* var_dump($tweets);  */

$hash_params =['q' => '#6758', 'count' => '10', 'lang'=>'ja'];
$hash = $connection->get('search/tweets', $tweets_params)->statuses;

/* var_dump($hash); */

$users_params = ['screen_name' => '*'];
$users = $connection->get('users/show', $users_params);

/* var_dump($hash); */


$geo_params = ['geocode' => '35.658034,139.701636,0.2km' ,'count' => '10'];
$geo = $connection->get('search/tweets', $geo_params)->statuses;

var_dump($geo);

phpファイルの生成

<?php
	
	$files = file_get_contents('test.php');

	$fileName = "kabu".rand(1000000,9999999);

	$files = mb_convert_encoding($files, "UTF-8", "AUTO");

	$fileName = $fileName. ".php";
	$handle = fopen($fileName, 'w');

	fwrite($handle, $files);
	fclose($handle);

	print $fileName. "を生成しました。<br>\n";
?>

kabu6512964.phpを生成しました。

<?php
require_once('query/phpquery/phpQuery/phpQuery.php');

$code = 3928;
$url = 'https://hogehoge.jp?code='.$code;
$html = file_get_contents($url);
$doc = phpQuery::newDocument($html);

$message = $doc&#91;".hogehoge"&#93;->text();
$price = $doc[".hoge"]->text();

?>

<!DOCTYPE html>
  <html lang="ja">
    <head>
      <title><?php echo $code."|".$message;?></title>
    </head>
<body>
  <b><?php echo "【".$code."】".$message;?></b>
  <p>現在の株価:<?php echo $price;?></p>
</body>
</html>

empty()

0か空の時、Trueを返し、それ以外の時はFalseを返す。

<?php

$shortsale = 0;
if(empty($shortsale)){
  print "空売り残はありません。";
} else {
  print "機関投資家の空売り残があります。";
}
?>

空売り残はありません。

ページング

<?php

function paging($limit,$page,$disp=5){
  $page = empty($_GET&#91;"page"&#93;)? 1: $_GET&#91;"page"&#93;;

  $next = $page + 1;
  $prev = $page - 1;

  if($page != 1){
    print '<a href="?page=' .$prev. '">&laquo; 前へ</a>';
  }
  if($page < $limit){
    print '<a href="?page='.$next.'">次へ &raquo;</a>';
  }
}

$limit = 10;
$page = empty($_GET["page"])? 1:$_GET["page"];
?>

csvデータからPHP・chart.jsで、日経平均株価のチャートを作ってみた

簡単すぎるぞ~

<?php

$data = file('nikkei225.csv', FILE_IGNORE_NEW_LINES);

unset($data&#91;0&#93;,$data&#91;-1&#93;);

function cut($item){
	return explode(',', $item);
}

$data = array_map("cut", $data);

foreach ($data as $value){
	$days&#91;&#93; = $value&#91;0&#93;;
	$high&#91;&#93; = $value&#91;3&#93;;
	$low&#91;&#93; = $value&#91;4&#93;;
}
/*
$php_day = json_encode($days);
$php_json = json_encode($low);*/
?>
<html>
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.4/Chart.min.js"></script>
</head>

<body>
	<p><?php echo $php_json; ?></p>
  <canvas id="stage"></canvas>
</body>
<script type="text/javascript">
var array = <?php echo json_encode($days, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT); ?>;
console.log(array);
var array2 = <?php echo json_encode($high, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT); ?>;
console.log(array2);
var ctx = document.getElementById("stage");
var myLineChart = new Chart(ctx, {
  //グラフの種類
  type: 'line',
  //データの設定
  
  data: {
      //データ項目のラベル
      labels: array,
      //データセット
      datasets: [{
          //凡例
          label: "日経平均株価",
          //背景色
          backgroundColor: "rgba(75,192,192,0.4)",
          //枠線の色
          borderColor: "rgba(75,192,192,1)",
          //グラフのデータ
          data: array2
      }]
  },
  //オプションの設定
  options: {
      scales: {
          //縦軸の設定
          yAxes: [{
              ticks: {
                  //最小値を0にする
                  beginAtZero: true
              }
          }]
      }
  }
});
</script>
</html>

トレーダー関数

“;
foreach ($atrs as $idx => $atr){
$price = $data[idx];
$highest = max($highest, $price[2]);
$losscutLine = round($highest – $atr * ATR_N, 2);
echo implode(“,”,[
$price[0],
$highest,
$price[4],
$losscutLine,
$price[4] < $losscutLine ? '売却':'保持' ]) . "\n"; } [/php]

phpQueryとexplode

<?php
	require_once('phpquery/phpQuery/phpQuery.php');

	$html = file_get_contents('');

	$doc = phpQuery::newDocument($html);

	$message = $doc&#91;".message"&#93;->text();
	echo substr_count($message, '下げ');
	$text = explode(" ",$message);
	
	print_r($text);	

?>