初心者のWEBデザイン

HTML,CSS、その他WEBデザインに関する事を記述していきます

20150411143621

PHP URL取得 健忘録 

echo "フルパス:";
echo __FILE__ . '<br />';
echo "ディレクトリパス:";
echo dirname(__FILE__) . '<br />';
echo "スクリプト名:";
echo basename(__FILE__) . '<br />';
echo "指定した拡張子を取り除いたスクリプト名:";
echo basename(__FILE__, '.php'). '<br />';
echo "__DIR__:";
echo __DIR__. '<br />';
echo "ドキュメントルート:";
echo $_SERVER['DOCUMENT_ROOT']. '<br />';
// if (file_exists(BLOCK_PATH .'/carousel.php')) {
//   echo "<h1>true</h1>";
// } else {
//   echo "<h1>false</h1>";
// }
echo "<br>";
echo "ドメインのみ取得";
echo $_SERVER[‘HTTPS‘]. '<br />';
echo $_SERVER["SERVER_NAME"]. '<br />';
echo $_SERVER["HTTP_HOST"]. '<br />';

// ドキュメントルートからの絶対パスを取得
echo $_SERVER[‘REQUEST_URI‘];
echo $_SERVER[‘SCRIPT_NAME‘];

Python 別ファイルのimport

  1. 同じディレクトリの中にあるファイルの import
  2. 子のディレクトリの中にあるファイルの import
  3. ディレクトリの中にあるファイルの import


Pythonを記述するにあたり、上記の3種類のimport方法が違う為、記述しときます。

同じディレクトリの中にあるファイルの import

ディレクトリ構成

.
├── main.py  # <= 呼び出し側
└── toBeCalled.py  # <= 呼び出される側

Python記述

import toBeCalled.py

子のディレクトリの中にあるファイルの import

ディレクトリ構成

.
├── aaa
│   ├── bbb
│   │   └── toBeCalled_BBB.py   # <= 呼び出される側
│   └── toBeCalled_AAA.py  # <= 呼び出される側
└── main.py  # <= 呼び出し側

Python記述

from aaa import  toBeCalled_AAA
from aaa.bbb import toBeCalled_BBB

ディレクトリの中にあるファイルの import

ディレクトリ構成

.
├── ccc
│   └── toBeCalled_CCC.py  # <= 呼び出される側
└── main
    └── main.py  # <= 呼び出し側


Python記述

import sys
sys.path.append('../')
#もしくは
import os
sys.path.append(os.pardir)

import baz
from ccc import toBeCalled_CCC

親の親のディレクトリなら('../../')と記述するので
あとは応用して対応できます。

Python GUIを構築 Tkinter

Pythonで簡単にGUIを描画できるライブラリ Tkinter

from tkinter import *

win = Tk()      # ウィンドウを作成

#Canvasを作成し、貼り付ける
cv = Canvas(win, width= 600,height = 400)
cv.pack()

 [書式] 線を描画する
 cv.create_line(x1, y1, x2, y2, x3, y3, ..., オプション)

 [書式] 長方形(矩形)を描画する
 cv.create_rectangle(x1, y1, x2, y2, オプション)

 [書式] 楕円を描画する
 cv.create_oval(x1, y1, x2, y2, オプション)


 win.mainloop()  # イベントループを実行

Python 図形描写 健忘録

from PIL import Image, ImageDraw,ImageFont

#描写するオブジェクトを作成
#第一引数から色・キャンパスの大きさ、塗りつぶしの色
drawCanvas = Image.new("RGB",(100,100),(255,255,255))
draw = ImageDraw.Draw(drawCanvas)
draw.rectangle((x軸の始点,y軸の始点),
(x軸の終点,y軸始点の終点),fill=(0,0,0),outline=(0,0,0))

ShellScript インクリメント 健忘録

他の言語だと++が使えますがbashだといつも
どうやるんだけ?っとなるんで健忘録で書いときます。


exprコマンド
ループ中に使用すると下記の$(())やletより
処理がすごく遅いです。

count=1
count=$(expr $count + 1) # => 2

$(())

count=1
count=$((++count))    # => 2
count=$((count++))    # => 2
count=$((count += 1)) # => 3

let

count=1
let ++count    # => 2
let count++    # => 3

Mac launchd 設定方法 健忘録

定期的にシェルを動かしたい際にはOSXでは
launchデーモンに登録する方法があります。

任意のユーザーで動かしたい場合には設定ファイルを下記に作成します。
/Users/ユーザー名/Library/LaunchAgents/

~/Library/LaunchAgents/ ユーザーごと設定できるエージェント
/Library/LaunchAgents/ 管理者用のエージェント
/Library/LaunchDaemons/ システム共通のデーモン(rootがオーナー)


plistファイルの角パラメーターは下記になります。

ジョブ名

<key>Label</key>
<string>任意のジョブ名</string>

実行するファイルの言語と実行ファイルへのパス

<key>ProgramArguments</key>
<array>
    <string>/bin/bash</string>
    <string>/Users/cat/script/test.sh</string>
</array>

実行のタイミング(秒指定)

    <key>StartInterval</key>
    <integer>10</integer>

実行時刻の設定

<key>StartCalendarInterval</key>
<dict>
    <key>Hour</key>
    <integer>0</integer>
    <key>Minute</key>
    <integer>0</integer>
</dict>


詳しくは
launchd - Wikipedia

Python Requests・BeautifulSoup 健忘録

スクレイピングで便利なRequests・BeautifulSoupの使い方を忘れないように残しておきます。
事前に足りないモジュールはPython用パッケージ管理システムのpipでインストールします。

スクレイピング

WebサイトからWebページのHTMLデータを収集して、特定のデータを抽出、整形し直すことである。

Requests

Python の HTTPモジュール

BeautifulSoup

取得したHTMLをパース(分解)や検索や整形したりすることができるモジュール


下記の流れで最低限のHTMLを取得することが出来ます。

import requests
from bs4 import BeautifulSoup

# アクセスするURL
url = "http://www.google.co.jp"

#RequestsのgetメソッドでwebからHTML取得
r = requests.get(url)

#要素を抽出
soup = BeautifulSoup(r.text, 'lxml')
#1行に1タグの整形されたUnicode文字列に出力
print(soup.prettify() )
#テキストだけ抽出
soup.get_text()
soup.string
soup.div.get_text()

#div要素の文字列を返る
soup.div.string
#全属性を返る 
soup.div.attrs
#親要素が返る
soup.div.parent     

#先頭のdiv要素のHTML抽出
soup.find('div')
#すべてのdiv要素のHTML抽出
soup.find_all('div')

#cssセレクターによる指定
soup.select('div#header > ul > li')   
文字列の操作
>>> '  cat  '.strip()
'cat'


>>> 'cat, dog, bird,'.split(',') 
['cat', ' dog', ' bird', '']

Git Github 健忘録

Gitのリポジトリの管理方法

作業ディレクト

作業中のファイルがあるディレクト

ステージングエリア

git addで追加したファイルがあるディレクト

Gitディレクト

git commitで追加したファイルがあるディレクト

コマンド

レポジトリ作成
$ git init
リポジトリに一時保存追加
$ git add 
リポジトリに追加

-v 変更点を表示してコミット
-a 変更のあったファイルすべて

$ git commit -m “コメント”
リモートリポジトリの情報追加
$ git remote add origin
リモートリポジトリからローカルリポジトリにコピー
$ git clone “リモートリポジトリのURL”
ローカルからリモートにファイルを反映
$ git push origin ブランチ名
リモート内容をローカルリポジトリに反映
$ git pull
ブランチの作成/移動/削除/変更/一覧/
$ git branch [branch_name]  //ブランチの作成
$ git checkout [branch_name]  //ブランチの移動
$ git branch -d [branch_name]  //ブランチの削除
$ git branch -m [branch_name]  //現在のブランチ名の変更
$ git branch // ローカルブランチの一覧
$ git branch -a //リモートとローカルのブランチの一覧
$ git branch -r //リモートブランチの一覧
$ git checkout -b branch_name origin/branch_name //リモートブランチへチェックアウト
編集をマージ

master以外のブランチで編集した箇所をmasterに反映させる

$ git checkout [branch_name]  //ブランチに移動
$ git commit -a -m "コメント"  //変更ファイルをコミット

$ git checkout master  //masterに移動
$ git merge [branch_name]  //差分をマージ
$ git push origin master  //ファイルの更新

用語

Fork

他のリポジトリのを自分のアカウント下にコピーすること

Pull Request

リモートレポジトリを更新した際に、他にもリポジトリ編集者がいる場合に、その編集内容を受け取って(pull)くださいというリクエストを出すこと

プルリクエストを送るまでの手順概要

Forkを使ったプロジェクトの作業の流れ

GitHub アカウント作成 & ログイン
オリジナルのリポジトリを自分のアカウントにfork
オリジナルまたはフォークしたリポジトリをローカルリポジトリにclone
クローンしたリポジトリ内で開発作業を行う
cloneで行った更新を、forkした自分のリモートリポジトリにcommit
forkしたリモートリポジトリからオリジナルのリポジトリにプルリクエスト (Pull Request) を送信

Atom テーマカスタマイズ

メインスタイルシート index.less

styles/base.lessを読み込むメインの設定ファイル

ベーススタイルシート styles/base.less

要素や変数、クォーテションや属性などの設定ファイル
colors.lessで設定した色を取り出して設定していきます。

カラースタイルシート styles/colors.less

主な色を設定しときます。
赤はこの色、青はあの色などを決めときます。

要素検証
⌘ + Alt + i

Atom 再起動
Cmd + Alt + Ctrl + L

Bash ln シンボリックリンクの使い方

シンボリックリンク

特定のファイルやディレクトリを指し示す別のファイルを作成し、
それを通じて元のファイルを参照できるようにする仕組み

$ ln -s [シンボリックリンクを作成したいファイルのパス]  [シンボリックリンクを置くフォルダのパス]
$ ln -s [参照させたいファイルやディレクトリパス]  [参照ファイルとリンクさせるパス]
$ ln -s ~/Dropbox/Sublime\ Text\ 3/Packages ~/Library/Application Support/Sublime\ Text 3/

Sublime Text やAtomの設定ファイルをDropboxにバックアップとして
置いときたかったので設定してみました。

  • n # ディレクトリとリンクを置き換える
  • f # リンク先に同名のリンク・ファイルがあるときも警告なく上書きする
  • s # シンボリック・リンクを作成する

unlink [シンボリックリンクを置くフォルダのパス]

topへ戻る