session_start関数を使って開始し、この下でセッションを保存していくことができる。
サンプル
<?php session_start(); $_SESSION['order']="現物取引:買い注文"; echo $_SESSION['order']; ?>

随机应变 ABCD: Always Be Coding and … : хороший
session_start関数を使って開始し、この下でセッションを保存していくことができる。
サンプル
<?php session_start(); $_SESSION['order']="現物取引:買い注文"; echo $_SESSION['order']; ?>

$_SERVER[‘PHP_SELF’] :ファイル名
$_SERVER[‘GATEWAY_INTERFACE’] :CGIのバージョン
$_SERVER[‘SERVER_ADDR’] :サーバーのIPアドレス
$_SERVER[‘SERVER_NAME’] :サーバーのホスト名
$_SERVER[‘SERVER_SOFTWARE’] :サーバーの認識文字列
$_SERVER[‘SERVER_PROTOCOL’] :プロトコル名とバージョン
$_SERVER[‘REQUEST_METHOD’] :リクエストのメソッド名
$_SERVER[‘REQUEST_TIME’] :リクエスト開始時のタイムスタンプ
$_SERVER[‘QUERY_STRING’] :検索引数
$_SERVER[‘DOCUMENT_ROOT’] :ドキュメントルートディレクトリ
$_SERVER[‘HTTP_ACCEPT’] :現在のリクエストのAccept
$_SERVER[‘HTTP_ACCEPT_CHARSET’] :現在のリクエストのAccept-Charset
$_SERVER[‘HTTP_ACCEPT_ENCODING’] :現在のリクエストにAcept-Encoding
$_SERVER[‘HTTP_ACCEPT_CONNECTION’] :現在のリクエストにConnection
$_SERVER[‘HTTP_HOST’] :現在のリクエストにHost
$_SERVER[‘HTTP_REFERER’] :ユーザーエージェントが参照していたページ
$_SERVER[‘HTTP_USER_AGENT’] :user agent
$_SERVER[‘HTTPS’] :Httpsプロトコルを通じて実行されている場合、空でない値
$_SERVER[‘REMOTE_ADDR’] :ユーザーのIPアドレス
$_SERVER[‘REMOTE_HOST’] :ユーザーのホスト名
$_SERVER[‘REMOTE_PORT’] :ポート番号
$_SERVER[‘SCRIPT_FILENAME’] :スクリプトの絶対パス
$_SERVER[‘SERVER_ADMIN’] :SERVER_ADMINにセットされている値
$_SERVER[‘SERVER_PORT’] :ポート番号
$_SERVER[‘SERVER_SIGNATURE’] :サーバーのバージョンとホスト名
$_SERVER[‘PATH_TRANSLATED’] :ファイルシステム上のパス
$_SERVER[‘SCRIPT_NAME’] :スクリプトのパス
$_SERVER[‘REQUEST_URI’] :ページアクセスするために指定されたURI
$_SERVER[‘PHP_AUTH_DIGEST’] :クライアントから送られたAuthorization
$_SERVER[‘PHP_AUTH_USER’] :ユーザー名
$_SERVER[‘PHP_AUTH_PW’] :ユーザのパスワード
$_SERVER[‘AUTH_TYPE’] :認証形式
$_SERVER[‘PATH_INFO’] :クライアントが提供するパス名
$_SERVER[‘ORIG_PATH_INFO’] :PATH_INFOの原本
関数やメソッドの内部で使用する場合、global $_SERVER;とする必要がありません。
例
<?php
$sector = '銀行';
$name = '8306';
function code(){
global $sector, $name;
echo '業種は' .$sector. 'の' .$name. 'です。<br>'."\n";
}
code();
?>
<?php
$sector = 'IT';
function code(){
global $sector;
echo '業種は' .$sector. 'の' .$_SERVER['HTTP_USER_AGENT']. 'です。<br>'."\n";
}
code();
?>

$_SERVERは、ヘッダ情報、パス情報、スクリプトの位置のような情報を提供
定義済み変数の一つ
ウェブサーバーに依存する
連想配列として使用する
関数やメソッドの内部で使用する場合、global $_SERVER;とする必要がない
サンプル
<?php echo "[PHP_SELF] : ".$_SERVER['PHP_SELF']."<br>\n"; echo "[SERVER_ADDR] : ".$_SERVER['SERVER_ADDR']."<br>\n"; ?>
サンプル2
<pre> <?php var_dump($_SERVER); ?> </pre>
array(23) {
["DOCUMENT_ROOT"]=>
string(17) "/home/vagrant/api"
["REMOTE_ADDR"]=>
string(12) "192.168.33.1"
["REMOTE_PORT"]=>
string(5) "65241"
["SERVER_SOFTWARE"]=>
string(29) "PHP 5.6.27 Development Server"
["SERVER_PROTOCOL"]=>
string(8) "HTTP/1.1"
["SERVER_NAME"]=>
string(13) "192.168.33.10"
["SERVER_PORT"]=>
string(4) "8000"
["REQUEST_URI"]=>
string(1) "/"
["REQUEST_METHOD"]=>
string(3) "GET"
["SCRIPT_NAME"]=>
string(10) "/index.php"
["SCRIPT_FILENAME"]=>
string(27) "/home/vagrant/api/index.php"
["PHP_SELF"]=>
string(10) "/index.php"
["HTTP_HOST"]=>
string(18) "192.168.33.10:8000"
["HTTP_CONNECTION"]=>
string(10) "keep-alive"
["HTTP_CACHE_CONTROL"]=>
string(9) "max-age=0"
["HTTP_USER_AGENT"]=>
string(115) "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
["HTTP_UPGRADE_INSECURE_REQUESTS"]=>
string(1) "1"
["HTTP_ACCEPT"]=>
string(85) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"
["HTTP_ACCEPT_ENCODING"]=>
string(13) "gzip, deflate"
["HTTP_ACCEPT_LANGUAGE"]=>
string(23) "ja,en-US;q=0.9,en;q=0.8"
["HTTP_COOKIE"]=>
string(36) "PHPSESSID=vbhhhjhtvqfjap6mpg0i9rj517"
["REQUEST_TIME_FLOAT"]=>
float(1517441772.9701)
["REQUEST_TIME"]=>
int(1517441772)
}
header関数は、HTTPヘッダを送信するという機能です。
header関数では、Locationと書いてから、飛び先URLを書きます。
サンプル:
<?php
header('Location: http://www.jpx.co.jp/');
exit();
?>
isset()は引数に指定した変数が定義されているかどうか調べる関数です。
定義されていればTRUE、定義されていなければFALSEを返します。
0や空文字の場合もTRUEを返します。
<?php
$var = "変数定義";
if (isset($var)){
print '$varは定義されています。';
} else {
print '$varは定義されていません。';
}
?>
サンプル:
逆指値注文が入っているかどうかの確認しています。
<?php
$price = "47970";
$name = "任天堂";
$position = "200";
$stoploss="45000";
if(isset($stoploss)){
if($price < $stoploss){
print $name."を".$stoploss."円で逆指値注文を決済しました。";
} else {
print $name."を".$stoploss."円に逆指値注文中です。";
}
} else {
print "只今逆指値注文はありません。";
}
?>

<?php
require_once('./google-api-php-client/src/Google/autoload.php');
session_start();
$client = new Google_Client();
$client->setClientId('クライアントID');
$client->setClientSecret('クライアントシークレット');
$client->setRedirectUri('リダイレクトURI');
if(isset($_GET['code'])){
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
header('Location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit;
}
if(isset($_SESSION['token'])){
$client->setAccessToken($_SESSION['token']);
}
if($client->getAccessToken()){
try {
echo "Google Drive Api 連携完了!<br>";
$_SESSION['client'] = $client;
} catch (Google_Exception $e){
echo $e->getMessage();
}
} else {
$client->setScopes(Google_Service_Drive::DRIVE);
$authUrl = $client->createAuthUrl();
echo '<a href="'.$authUrl.'">アプリケーションのアクセスを許可してください。</a>';
exit;
}
?>
<a href="list.php">ファイル一覧</a><br>
<a href="imageview.php">画像表示</a><br>
<a href="upload.php">アップロード</a>
countは配列の要素数を数える。
<?php $a[] = "10"; $a[] = "25"; $a[] = "8"; print count( $a ); ?>
では、ストップ高のサンプルです。条件分岐も入れておきましょう。
<?php
$stophigh[] = "ホーブ";
$stophigh[] = "バリューコマース";
$stophigh[] = "オイシックスドット大地";
$stophigh[] = "大村紙業";
$stophigh[] = "国際チャート";
$stophigh[] = "ジャストプランニング";
$stophigh[] = "RSC";
$num = count($stophigh);
if($num>0){
print "本日のストップ高は $num 銘柄です。";
} else {
print "本日ストップ高はありません。";
}
?>

アロー演算子(->)はクラスやオブジェクトに関係ある演算子です。
1)クラスの例
class
{
public $color = "塗装前";
public $speed = 0;
function run(){
print "{this->color}の車で、時速{$this->speed}kmで走行しています。"
}
}
例がわかりにくいので、立会外分売の例で考えてみましょう。
2)クラスの例2
class Offselling
{
public $price = "終値";
public $discount = 0;
function sales(){
print "終値{$this->price}の株を、割引率{$this->discount}で売り出します。"
}
}
設計図が完成したので、objectを記載します。
<?php
$myCar = new Car;
$myCar->run();
class Car
{
public $color = "塗装前";
public $speed = 0;
function run(){
print "{$this->color}の車で、時速{$this->speed}kmで走行しています。";
}
}
?>

オブジェクトに代入してみます。
<?php
$myCar = new Car;
$myCar->color = "赤い色";
$myCar->speed = 20;
$myCar->run();
class Car
{
public $color = "塗装前";
public $speed = 0;
function run(){
print "{$this->color}の車で、時速{$this->speed}kmで走行しています。";
}
}
?>

では、立会外分売3547串カツ田中でやってみましょう。
<?php
$kushikatu = new Offselling;
$kushikatu->price = "4020";
$kushikatu->discount = 3.01;
$kushikatu->sales();
class Offselling
{
public $price = "終値";
public $discount = 0;
function sales(){
print "終値{$this->price}円の株を、割引率{$this->discount}で売り出します。";
}
}
?>

<?php
function getService()
{
require_once 'vendor/autoload.php';
$service_account_email = 'xxx';
$key_file_location = '/';
$client = new Google_Client();
$client->setApplicationName("MyAnalyticsApp");
$analytics = new Google_Service_Analytics($client);
$key = file_get_contents($key_file_location);
$cred = new Google_Auth_AssertionCredentials(
$service_account_email,
array(Google_Service_Analytics::ANALYTICS_READONLY),
$key
);
$client->setAssertionCredentials($cred);
if($client->getAuth()->isAccessTokenExpired()){
$client->getAuth()->refreshTokenWithAssertion($cred);
}
return $analytics;
}
function getFirstprofileId(&$analytics){
$accounts = $analytics->management_accounts->listManagementAccounts();
if(count($accounts->getItems()) > 0){
$items = $accounts->getItems();
$firstAccountId = $items[0]->getId();
$properties = $analytics->management_webproperties
->listManagementWebproperties($firstAccountId);
if (count($properties->getItems()) > 0){
$items = $properties->getItems();
$firstPropertyId = $items[0]->getId();
$profiles = $analytics->management_profiles
->listManagemetProfiles($firstAccountId, $firstPropertyId);
if(count($profiles->getItems()) > 0){
$items = $profiles->getItems();
return $items[0]->getId();
} else {
throw new Exception('No views (profiles) found for this user.');
}
} else {
throw new Exception('No properties found for this user.');
}
} else {
throw new Exception('No accounts found for this user.');
}
}
function getResult(&$analytics, $profileId){
return $analytics->data_ga->get(
'ga:' . $profileId,
'7daysAgo',
'today',
'ga:sessions');
}
function printResults(&$results){
if (count($results->getRows()) > 0){
$profileName = $results->getProfileInfo()->getProfileName();
$rows = $results->getRows();
$sessions = $rows[0][0];
print "First view (profile) found: $profileName\n";
print "Total sessions: $sessions\n";
} else {
print "No results found.\n";
}
}
$analytics = getService();
$profile = getFirstProfileId($analytics);
$results = getResults($analytics, $profile);
printResults($results);
?>
<?php
$totalPage = 100;
if (
isset($_GET["page"]) &&
$_GET["page"] > 0 &&
$_GET["page"] <= $totalPage
) {
$page = (int)$_GET["page"];
} else {
$page = 1;
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>サンプル</title>
</head>
<body
<p>現在 <?php echo $page; ?>ページ目です。
<p>
<?php if ($page > 1) : ?>
<a href="?page=<?php echo ($page - 1); ?>">前ページへ</a>
<?php endif; ?>
<?php if ($page < $totalPage) : ?>
<a href="?page=<?php echo ($page + 1); ?>">次ページへ</a>
<?php endif; ?>
</p>
</body>
</html>