ラベル PHP の投稿を表示しています。 すべての投稿を表示
Macのいいエディタがあった。
今回紹介するのは、「Editor」です。
このEditorは様々なプログラミング言語に対応し、UIもシンプルで使いやすいです。
一応有料となりますが、たった1,000円なので大丈夫。
私自信主に、PHP/C等の開発に使う予定なので、十分です。
このEditorは様々なプログラミング言語に対応し、UIもシンプルで使いやすいです。
一応有料となりますが、たった1,000円なので大丈夫。
私自信主に、PHP/C等の開発に使う予定なので、十分です。
個人的に気に入っている機能
このアプリケーションの凄い所は、
「自動入力補助機能」が凄い所です。複数の言語の補助をしてくれる為長い関数等、キーワードを記述する際にとても役立ちます。
補助単語も任意で追加する事が出来るので尚便利ですね。
補助されない単語も自分で追加すれば後から幾らでも補助してくれるのでこの機能はとても便利です。
他にもテキストカラー設定も可能で、最初から幾つかテンプレートは用意されています。
気に入るテンプレートが無い場合は任意で独自のデザインにしていきましょう。
これは実際に使ってみて分かるのですが、とても使いやすいです。
入力補助でこまでしてくれる入力補助を持つエディタは大抵高額だったりしますが、
このアプリケーションではたった1,000円なので無駄な買い物した気にはなりませんね。
UIもシンプルでMac本来の美しさを消していません。
ダウンロードは以下のURLからどうぞ、
https://itunes.apple.com/jp/app/editor-simple-texteditor/id661536561?mt=12
ネットショップを始めるなら
今回ローカルサーバー上で試しに"EC-CUBE"をインストールしてみました。
このEC-CUBEは何なのかと言うと、ネットショップを構築出来るシステムです。
機能もよく、独自で制作した商品等を出品するのもいいですね。
個人的に興味深いCMSなので、システム自体の解析をしてアルゴリズムを盗みたいと思います。w
こういった系統のオープンソースはホント魅力的ですよね。
私の知識・技術のほとんどがオープンソースのおかげです。
WordPressのアルゴリズムも参考になるし、OpenPNEにもお世話になりました。
っで今回まず、このシステムの魅力を説明します。
管理画面home
これは管理画面ホームのスクリーンショットです。この画面でも既に色々な情報が表示されていますね。
個人的にUIは何かヘタレですが、十分だと思います。
[システム情報]->[詳細]のリンクではPHPの詳細情報を閲覧可能です。
開発者であれば必要な情報ですね。
デザインの設定も可能です。
レイアウト設定ではコンテンツの配置を自由に変更可能で、[テンプレート追加]ではダウンロードしたテンプレートをセッティング出来る様です。
この際自分もテンプレートの制作のお勉強をして現在ある依頼をチャチャっと終わらせようかと思っています。
また、自分の参加しているグループでの利用も検討していて、自分らの力を合わせれば原型をとどめないぐらいカスタマイズ出来るかと期待しています。
お決まりのあのファイル
このファイルでは見て分かるとおり、MySQLのテーブル設定のクエリが記述されています。
って事はどこかのファイルにクエリをSQLに渡す処理があると言う事。
これも実に参考になる情報だ。
クエリ文も参考になるから得だらけだwww
ダウンロードコンテンツの販売も可能らしい。
このEC-CUBEは何なのかと言うと、ネットショップを構築出来るシステムです。
機能もよく、独自で制作した商品等を出品するのもいいですね。
個人的に興味深いCMSなので、システム自体の解析をしてアルゴリズムを盗みたいと思います。w
こういった系統のオープンソースはホント魅力的ですよね。
私の知識・技術のほとんどがオープンソースのおかげです。
WordPressのアルゴリズムも参考になるし、OpenPNEにもお世話になりました。
っで今回まず、このシステムの魅力を説明します。
管理画面home
これは管理画面ホームのスクリーンショットです。この画面でも既に色々な情報が表示されていますね。
個人的にUIは何かヘタレですが、十分だと思います。
[システム情報]->[詳細]のリンクではPHPの詳細情報を閲覧可能です。
開発者であれば必要な情報ですね。
デザインの設定も可能です。
レイアウト設定ではコンテンツの配置を自由に変更可能で、[テンプレート追加]ではダウンロードしたテンプレートをセッティング出来る様です。
この際自分もテンプレートの制作のお勉強をして現在ある依頼をチャチャっと終わらせようかと思っています。
また、自分の参加しているグループでの利用も検討していて、自分らの力を合わせれば原型をとどめないぐらいカスタマイズ出来るかと期待しています。
お決まりのあのファイル
このファイルでは見て分かるとおり、MySQLのテーブル設定のクエリが記述されています。
って事はどこかのファイルにクエリをSQLに渡す処理があると言う事。
これも実に参考になる情報だ。
クエリ文も参考になるから得だらけだwww
ダウンロードコンテンツの販売も可能らしい。
PHPでMySQLのテーブルを複数作成する方法
最近とある依頼が沢山あり、作業を猛スピードで勧めているのですが、
依頼自体が結構大規模で嘔吐寸前のふっくんです。
今回は、ショップ用CMSの開発時に汎用性かつ簡単に誰でも使えるCMSを作成しなくてはいけなくて、今回初めてPHPを使いMySQLのテーブルを複数作成しました。
(今回がMySQLに初めて触れたんです。)
学習対象
今回の記事ではWebMatrixを利用した開発になります。
WebMatrixをお持ちでなくてもPHPとMySQLが利用出来る方は今回の対象内に入ります。
以前「WebMatrixでMySQL接続」と言う記事を書いたので、WebMatrixをお持ちの方はその記事を始めにお読みになると理解しやすいかと思います。
WebMatrixをお持ちでなくてもPHPとMySQLが利用出来る方は今回の対象内に入ります。
以前「WebMatrixでMySQL接続」と言う記事を書いたので、WebMatrixをお持ちの方はその記事を始めにお読みになると理解しやすいかと思います。
- PHPの基礎知識のある方
- MySQL存在を知っている方
- 自己解決出来る方
- ロリコンの方
上記4項目に当てはまる方は対象です。
Q「PDOとはなんぞや!?」っと思う方の為説明します。
PDOとは、PHPでデータベース操作する時に便利なクラス?で、newでオブジェクト化?して利用する事が出来ます。〇(多分そんな感じだと思う。)
大体のデータベースに対応していて、今まで使っていたデータベースを他のデータベースに切り替える時も大規模な変更を行わなくても大丈夫な物です。
PHP公式サイトでもmysql_系の関数は将来的に消えるとの報告があるので、
PDOを使う事をお勧めします。
っで話の戻るのですが、まずテーブルを作るクエリから紹介します。
PDOとは、PHPでデータベース操作する時に便利なクラス?で、newでオブジェクト化?して利用する事が出来ます。〇(多分そんな感じだと思う。)
大体のデータベースに対応していて、今まで使っていたデータベースを他のデータベースに切り替える時も大規模な変更を行わなくても大丈夫な物です。
PHP公式サイトでもmysql_系の関数は将来的に消えるとの報告があるので、
PDOを使う事をお勧めします。
っで話の戻るのですが、まずテーブルを作るクエリから紹介します。
CREATE TABLE table_name (id int(11) auto_increment,Column_name CHAR(15),mail CHAR(100),PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;
上記のクエリ文をご覧下さい。
この文でデータベースにテーブルを作成します。
[table_name]この部分では作成するテーブル名を指定します。
[Column_name]では、カラム名を指定します。
id int(11)と言う部分も同じです。
カラムの設定ではデータ型の指定は必須です。
この文でデータベースにテーブルを作成します。
[table_name]この部分では作成するテーブル名を指定します。
[Column_name]では、カラム名を指定します。
id int(11)と言う部分も同じです。
カラムの設定ではデータ型の指定は必須です。
PRIMARY KEY (`id`)
これはIDを指定しています。
今回やる事はこのクエリ文を「.sql」拡張子で保存し、それをPHPで全ての文を実行すると言う至って簡単な事です。
今回やる事はこのクエリ文を「.sql」拡張子で保存し、それをPHPで全ての文を実行すると言う至って簡単な事です。
require_once 'database_access00.php';
$dbn = new PDO(ACCESS_TEXT, USER_NAME, PASSWORD);
$dbn -> query('SET NAMES UTF-8');
$fopens = fopen("ファイル名.sql", "r");
$i = 0;
while(!feof($fopens)){
$fprint = fgets($fopens);
$dbn -> query($fprint);
$i++;
}
//footer
$stmt -> execute();
$dbn = NULL;
大体ソースを見れば分かるでしょう。
普通にrモードでファイルを開き1行ずつquery()で処理しています。
これでテーブルの作成は完了です。
普通にrモードでファイルを開き1行ずつquery()で処理しています。
これでテーブルの作成は完了です。
プログラミングを始める前に基礎を教えておく。
最近PCの前に座る回数が少なくなりつつモンハンforiOSで未だ集会場の絶対強者ティガレックスが倒せなくて前へ進めない泉川です。緊急クエスト手伝ってあげるって方はは是非コメント下さい。
っで、今回はプログラミングを始める前に知っておくと学習がスムーズに進むお話をします。
まず第一プログラミングでは共通した部分が幾つかあり、ある程度基礎さえ知っていれば学習がスムーズに進みます。この記事はパソコン初心者かつ初めてプログラミングに触れる方向けに書いていきます。
ここで基礎さえ分かれば大体の言語に応用出来ます。
っで、何故今更こんな記事を!?
と疑問に思うかもしれないですね。
以前「放送大学」でのプログラミングについての説明がとても分かりずらく、もっと分かりやすい方法で教える事は出来ないのか??等と思ったので私なりに、プログラミングの基礎知識を教えたいと思います。
放送大学の放送内容ではオブジェクト指向プログラミング言語とはどの様な物なのか??について説明していましたが、それ以前に必要な知識となる部分を教えたいと思います。
まず、プログラミング言語と言う物は世の中に沢山あり、今現在もプログラミング言語の開発も進行しています。よく目にする代表的な言語と言えば、
- C/C++
- C#
- VB
- Java
- JavaScript
- PHP
等これらは誰もが知っている言語ですね。
この中に低級言語と言われている。C言語と言う言語があります。
私は今学習段階なのですが、このCは機械語に一番近い言語と言われて、古くから使われています。現代ではJava製の製品等もよく目にしますが、Cも結構使われています。
1〜6の項目内にJavaとJavaScriptと言う項目があるのが分かりますね。
以前放送大学では表記方法を間違っていたのですが、この両方は全く異なる言語ですのね。お間違えない様に。Javaだけ英語でScriptがカタカナ表記だったので、間違えやすかったと思います。
では次は文法についてお話をします。
文法とはプログラミング言語それぞれ独特な文法が使われています。
大体のプログラミング言語では文法等覚えてしまえばスラスラプログラミングを組む事が出来ます。
今回はC語とPHPを使った方法でご説明します。
その前にC語とPHPの違いを説明します。
C/PHPはとてもシンプルな書き方でプログラミングが出来ますが、C語の方は機械語に近い為細かい所まで書く。っと言う感じのイメージですね。
PHPはC語程詳しく書かなくても大丈夫です。
ただ似ている箇所は幾つかあるので注目です。
※クリックで拡大
この両方のプログラムはファイルを読み込んでいます。
なので、実行結果は同じです。
貴方し何箇所似ていると思う所を見つけたでしょうか??
では同じ処理をしているのにも関わらず、C言語の方が何故ソースが多いのかについてお話します。
まず、パソコンと言うのはとても純粋で一途な可愛い私の妹です。
C語ではまず、どこからプログラムを実行するか等を教えてあげなくてはなりません。
これを書かないと人間で言う、テストの問題文が無い様な物です。
テストに図形だけか書かれていて、この図形をどうするのか??
もしくは、テスト用紙には複数の図形があり、説明文が無い場合、
1つ1つの面積を求めるのか??もしくは積み木の様にその図形で何かを完成させるのか、
分からないですよね??
だからC語ではどこから読んで、どの様に処理するのかを詳しく教えてあげないといけないのです。
その何処から読むのかを教えるにはmain関数と言うのを作ってあげないといけません。
int main(void)
{
return 0;
}
この関数内に処理を書いていくってわけです。
では何故その細かい説明はPHPには無いのでしょうか??
それはPHPが上からソースを処理すると言うルールがあるからです。
なので、何処から実行するべきか等の指定はなく、上から実行していきます。
この様にプログラミング言語ごとに様々なルール・文法が使われている事が分かったと思います。
WebMatrixでMySQL接続
人生初めてPHPでMySQLの接続が成功したので、今回はMySQL入門程の説明はしませんが、
「新しいMySQLデータベース」
情報が少ないWebMatrixでのMySQL接続の方法をご紹介します。
手始めにまずWebMatrixを開いて直ぐにでもソースを書ける状態にして下さい。
では準備が整ったら早速作業に入りましょう。
まず、ディレクトリ一覧の下にある、「データベース」を開きます。
この画面で、データベースの設定等が行えます。
今回はデータベースを作ったらPHPでデータベースに接続し、値をDBに保存します。
- データベースを作成
- テーブルを作成
- PHPで接続
- 値を追加
この手順で解説を進めます。
では、まずデータベースの作成からしましょう。
「新しいデータベース」->「MySQLデータベース」
「新しいMySQLデータベース」
ここでデータベースの各種設定を行います。
データベース : 作成するデータベース名を設定します。
その他[サーバー]等は一切触れなくていいですが、ユーザー名とパスワードはちゃんと設定しましょう。
これらの情報はPHPで接続する時に必要になります。
各種項目の入力が完了したら「OK」ボタンをクリックします。
すると、データベースが作成されます。
次にテーブルを作成したいと思います。
「新しいテーブル」をクリックし、フィールドを設定しましょう。
設定が完了したら保存ボタンをクリックします。
すると、サイドバーにテーブルが作成された事が確認出来ます。
テーブルをクリックし、「定義」から「データ」に切り替えるとデータベースデータの確認が出来ます。
次にPHPでの接続方法です。
PHPでMySQLに接続しよう。
ここまで順調に作業が進んでいたらもう成功以外何もありません。
ソースの詳細は割愛しますが、ま〜普通に接続すればいいと言う事だけです。
万が一データベースの情報を忘れた場合パスワード以外ならちゃんと表示してくれます。
データベースを右クリックし、「接続文字列をコピー」をします。
メモ帳等で右クリック「貼り付け」をするとユーザーIDやデータベース名等が貼り付けられます。
これでデータベースを確認してみて下さい。
データが追加されていると思います。
データベース : 作成するデータベース名を設定します。
その他[サーバー]等は一切触れなくていいですが、ユーザー名とパスワードはちゃんと設定しましょう。
これらの情報はPHPで接続する時に必要になります。
各種項目の入力が完了したら「OK」ボタンをクリックします。
すると、データベースが作成されます。
次にテーブルを作成したいと思います。
「新しいテーブル」をクリックし、フィールドを設定しましょう。
設定が完了したら保存ボタンをクリックします。
すると、サイドバーにテーブルが作成された事が確認出来ます。
テーブルをクリックし、「定義」から「データ」に切り替えるとデータベースデータの確認が出来ます。
次にPHPでの接続方法です。
PHPでMySQLに接続しよう。
ここまで順調に作業が進んでいたらもう成功以外何もありません。
ソースの詳細は割愛しますが、ま〜普通に接続すればいいと言う事だけです。
万が一データベースの情報を忘れた場合パスワード以外ならちゃんと表示してくれます。
データベースを右クリックし、「接続文字列をコピー」をします。
メモ帳等で右クリック「貼り付け」をするとユーザーIDやデータベース名等が貼り付けられます。
$dsn = 'mysql:dbname=aqua_sample;host=localhost';
$user = 'root';
$pass = '123456789';
$db = new PDO($dsn, $user, $pass);
$db -> query('SET NAMES UTF-8');
$sql = 'INSERT INTO data (name) VALUES ("ふっくん")';
$data = $db -> prepare($sql);
$data -> execute();
$db = NULL;
これでデータベースを確認してみて下さい。
データが追加されていると思います。
ほほうボタンを皆でカスタマイズ!!
ちょっとGoogle+でリクエストがあったので、今回ほほうボタンの仕様とソースを簡単に説明しちゃいますね。
ほんとに何が言いたいのか分からない図ですが、
上記の図を見ながら処理の順序をご覧下さい。
ほほう1された時の処理
ほほうが取り消された時の処理
dataにページURLを書いて送信するだけでPHPがデータの存在を確認します。
データが存在しない場合は0を返します。
データが存在する場合はその数値を返します。
次にボタンが+1された事をPHPに教えるのですが、以下のURLにPOSTで送信します。
POSTでページURLと特定の命令文字列を送信します。命令文字列によって+1と-1を使い分けます。
[Increment]+1命令文字列
[Decrement]-1命令文字列
これを送信する事によりPHP側でインクリメントかデクリメントかを判断し、
確実にデータを書き換えます。
データIDを独自の文字列に変える
PHPではURLをそのままファイル名として使える様にファイル名として使えない文字列は特定の文字列に変換する様にしています。これは何らかのエラーを回避する為の対策ですが、別にページのURLじゃなくてもいいと言う事です。
PageURLの部分はあくまでも区別しやすい様になので、独自のデータIDをここに書き込んで送信すると言う事が可能です。
ただ他のサイトで使われているIDと一緒にならない様に注意して下さい。
最低でも20文字以上がより安全かと思います。
JavaScript
ほんとに何が言いたいのか分からない図ですが、
上記の図を見ながら処理の順序をご覧下さい。
ほほう1された時の処理
- JavaScript内で使用されるほほう数を加算
- PHPにPOSTでページURLと"Increment"を送信
- ほほうボタンスタイル変更
ほほうが取り消された時の処理
- JavaScript内で使用されるほほう数をデクリメント
- PHPにPOSTでページURLと"Decrement"を送信
- ほほうボタンスタイル変更
ま〜正直言ってしまうとこれ誰でも作れてしまいます。
まずページロード時に
http://izumikawa.tk/api/hohoubotan/phpint.php?data=PageURL
dataにページURLを書いて送信するだけでPHPがデータの存在を確認します。
データが存在しない場合は0を返します。
データが存在する場合はその数値を返します。
次にボタンが+1された事をPHPに教えるのですが、以下のURLにPOSTで送信します。
http://izumikawa.tk/api/hohoubotan/hohou_botan_share.php
POSTでページURLと特定の命令文字列を送信します。命令文字列によって+1と-1を使い分けます。
[Increment]+1命令文字列
[Decrement]-1命令文字列
これを送信する事によりPHP側でインクリメントかデクリメントかを判断し、
確実にデータを書き換えます。
データIDを独自の文字列に変える
PHPではURLをそのままファイル名として使える様にファイル名として使えない文字列は特定の文字列に変換する様にしています。これは何らかのエラーを回避する為の対策ですが、別にページのURLじゃなくてもいいと言う事です。
PageURLの部分はあくまでも区別しやすい様になので、独自のデータIDをここに書き込んで送信すると言う事が可能です。
ただ他のサイトで使われているIDと一緒にならない様に注意して下さい。
最低でも20文字以上がより安全かと思います。
JavaScript
var xmlHttp;
var phpint;
var eventlog = 'null';
var pageurl = location.href;
xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = loading;
xmlHttp.open("GET", "http://izumikawa.tk/api/hohoubotan/phpint.php?data="+pageurl, false);
xmlHttp.send(null);
function loading() {
window.addEventListener('load', function () {
console.log("loading: ", xmlHttp.readyState, xmlHttp.status);
phpint = xmlHttp.responseText;
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var hohou_botanobject = document.getElementById("hohou_botan");
hohou_botanobject.innerHTML = 'ほほう' + phpint;
hohou_botanobject.style.borderRadius = "5px";
hohou_botanobject.style.MozBorderRadius = "5px";
hohou_botanobject.style.WebkitBorderRadius = "5px";
hohou_botanobject.style.padding = "5px";
hohou_botanobject.style.color = "#FF3E3E";
hohou_botanobject.style.textAlign = "center";
hohou_botanobject.style.fontWeight = "bold";
hohou_botanobject.style.backgroundColor = '#FFFFFF';
hohou_botanobject.style.cursor = "pointer";
}
}, false);
} function hohou_share() {
if(eventlog == 'null') {
eventlog = 'value';
phpint++;
var data = { main_data: 'Increment', data_url: pageurl };
var http_post = new XMLHttpRequest();
http_post.onreadystatechange = function () {
var READYSTATE_COMPLETED = 4;
var HTTP_STATUS_OK = 200;
if (this.readyState == READYSTATE_COMPLETED && this.status == HTTP_STATUS_OK) {
var hohou_object = document.getElementById('hohou_botan');
hohou_object.innerHTML = 'ほほう' + phpint;
hohou_object.style.backgroundColor = '#FF3C3C';
hohou_object.style.color = "#FFFFFF";
}
};
http_post.open('POST', 'http://izumikawa.tk/api/hohoubotan/hohou_botan_share.php');
http_post.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_post.send(form_data(data));
}else if(eventlog == 'value') {
eventlog = 'null';
phpint--;
var data = { main_data: 'Decrement', data_url: pageurl };
var http_post = new XMLHttpRequest();
http_post.onreadystatechange = function () {
var READYSTATE_COMPLETED = 4;
var HTTP_STATUS_OK = 200;
if (this.readyState == READYSTATE_COMPLETED && this.status == HTTP_STATUS_OK) {
var hohou_object = document.getElementById('hohou_botan');
hohou_object.innerHTML = 'ほほう' + phpint;
hohou_object.style.backgroundColor = '#FFFFFF';
hohou_object.style.color = "#FF3E3E";
}
};
http_post.open('POST', 'http://izumikawa.tk/api/hohoubotan/hohou_botan_share.php');
http_post.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_post.send(form_data(data));
}
}
function form_data(data) {
var params = [];
for(var name in data) {
var value = data[name];
var param = encodeURIComponent(name).replace(/%20/g, '+') + '=' + encodeURIComponent(value).replace(/%20/g, '+'); params.push(param);
} return params.join('&');
}
Google+の共有(post)をAPIで一覧取得してみた。
今回Google+のAPIを使って自分で投稿した共有をPHPで取得する方法をご紹介します。
以前投稿した「Google+APIを使ってみた。」を読んだ前提として話を進めて行きます。
[items][#][object][replies]のtotalItemsはコメント数で、selfLinkはコメントのデータです。
これは今回使いましたが、[items][#][object]plusonersは恐らく+1したカウントとした人のアイコン画像です。これも結構使える物かと思います。
コピー&ペーストして使いたい方は、このソースを[<div id="google_widget">]で挟んで以下のCSSもコピー&ペーストして頂いた方がいいです。
以前投稿した「Google+APIを使ってみた。」を読んだ前提として話を進めて行きます。
対象
- Google+APIを使ってみたい方
- 暇を持て余している方
- PHPで大抵の事が出来る方
- HTMLを普通に使える方
- 幼女好きの方
共有を取得する
今回はちょっと以前の投稿のと違います。
https://www.googleapis.com/plus/v1/people/me/activities/public?key=キー
このURLで一応共有を[0]から[19]までいっきに取得出来ます。
今回は以下の項目を取得して表示します。
- 投稿者名
- 更新日
- 投稿者アイコン画像URL
- 共有のURL
- 共有記事
- コメント者の画像・名前
- コメントテキスト
以上です。
一応以下に配列へのアクセスを書きます。
投稿者画像[$obj['items'][$post]['actor']['image']['url']]
共有URL[$obj['items'][$post]['url']]
投稿時日[$obj['items'][$post]['updated']]
投稿者名[$obj['items'][$post]['actor']['displayName']]
共有記事[$obj['items'][$post]['object']['content']]
コメント者画像[$obj_comment['items'][$i]['actor']['image']['url']]
コメント者名前[$obj_comment['items'][$i]['actor']['displayName']]
コメントテキスト[$obj_comment['items'][$i]['object']['content']]
共有はfor文でループさせて情報を取り出しています。
for($post=0; $post < 19; $post++){
コメントも同様ループさせて情報を取得しています。
for($i=0; $i < $comment_int; $i++){
今回使っていないけど使えそうな値
情報を取得すると、nextPageTokenの配列がありますが、これは[0]から[19]までしか表示されませんが、それ以降の投稿を取得する為の[キー]です。
https://www.googleapis.com/plus/v1/people/me/activities/public?pageToken=CKaEL&key=キー
CkaELの部分にnextPageTokenの値を入れればいいわけです。
次に、
次に、
[items][#][object][replies]のtotalItemsはコメント数で、selfLinkはコメントのデータです。
これは今回使いましたが、[items][#][object]plusonersは恐らく+1したカウントとした人のアイコン画像です。これも結構使える物かと思います。
実際に取得するソースを書いてみた。
なんだか説明しずらいのでソースをみて理解して頂ければと思います。
$json = file_get_contents("https://www.googleapis.com/plus/v1/people/+福巳泉川ふっくん/activities/public?key=キー");
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$obj = json_decode($json, true);
for($post=0; $post < 19; $post++){
print '
';
print '
';
print '
';
print '
';
print '
';
print '
';
print '
' . $obj['items'][$post]['updated'] . '
';
print '
';
print '
' . $obj['items'][$post]['object']['content'] . '
';
$comment_int = $obj['items'][$post]['object']['replies']['totalItems'];
$comment_url = $obj['items'][$post]['object']['replies']['selfLink'];
$data_fopen = file_get_contents($comment_url . '?key=AIzaSyCiQ3s4QvXcqHccwkw8rsXxDUNSYuZNmKc');
$json_comment = mb_convert_encoding($data_fopen, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$obj_comment = json_decode($json_comment, true);
if($comment_int > 0){
print '
';
print '
';
for($i=0; $i < $comment_int; $i++){
print '
';
print '
';
print '
' . $obj_comment['items'][$i]['actor']['displayName'] . '
';
print '
' . $obj_comment['items'][$i]['object']['content'] . '
';
print '
';
}
print '
';
}
print '
';
}
コピー&ペーストして使いたい方は、このソースを[<div id="google_widget">]で挟んで以下のCSSもコピー&ペーストして頂いた方がいいです。
body{ font-family: "メイリオ", Meiryo, "MS Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro";
font-size: 75%; color: #000000; margin: 0px; padding: 0px; }
h1,h2,h3,h4,h5,p,ul,ol,li,dl,dt,dd,form{ margin: 0px; padding: 0px; }
ul{ list-style-type: none; }
.post_container{ margin-bottom: 25px; }
#google_widget{ padding: 5px; width: 500px; background-color: #FFFFFF; }
.widget_box{ padding: 5px 5px 10px; border-width: 1px; border-color: #F0F0F0; border-style: solid; }
.name, .time{ color: #999999; }
.profile_icon{ margin-right: 5px; float: left; height: 46px; width: 46px; }
.data{ padding-top: 5px; }
.float{ clear: right; }
.stream_text{ padding-bottom: 10px; }
.stream_comment{ padding: 5px; background-color: #F8F8F8; }
.use_icon{ margin-right: 10px; float: left; height: 28px; width: 28ox; }
.user_name{ font-weight: bold; line-height: 28px; height: 28px; }
.name a{ color: #4B4B4B; text-decoration: none; }
.name a:hover{ text-decoration: underline; }
Google+APIを使ってみた。(GETでユーザー情報取得)
今回Google+APIを使って簡単にユーザーのプロフィール情報を取得する方法をご紹介します。
Google+ API - Google+ Platform — Google Developers
で、ちゃんと詳しく説明されているのですが、私的に分かりやすい様に説明させて頂きます。
ユーザー情報は簡単にGETで取得する事が出来ますが、APIキーまたはOAuthトークン が必ず必要になります。汎用的に使うのであれば手軽なAPIキーで十分ですので、今回はAPIキーでの取得方法をご紹介します。
取得は以下のURLからどうぞ
https://code.google.com/apis/console?hl=ja#access
恐らく何処にあるか分からないと思いますが、以下の画像を参考にどうぞ
[API Access]->[Simple API Access]
このAPIキーをGETと組み合わせれば簡単に取得が可能です。
[/me/]の部分にはユーザー名またはIDを入力します。
私のプロフィールを取得するのであれば、
またIDなどで取得する場合は[me]の部分をIDとそのまま置き換える事で取得が出来ます。
どちらでも同じく取得出来ます。
GETで取得出来るデータ形式はJSONP形式で、PHPで取得して配列に入れれば簡単にデータの一部を取り出す事が出来ます。
Google+ API - Google+ Platform — Google Developers
で、ちゃんと詳しく説明されているのですが、私的に分かりやすい様に説明させて頂きます。
ユーザー情報は簡単にGETで取得する事が出来ますが、APIキーまたはOAuthトークン が必ず必要になります。汎用的に使うのであれば手軽なAPIキーで十分ですので、今回はAPIキーでの取得方法をご紹介します。
取得は以下のURLからどうぞ
https://code.google.com/apis/console?hl=ja#access
恐らく何処にあるか分からないと思いますが、以下の画像を参考にどうぞ
[API Access]->[Simple API Access]
このAPIキーをGETと組み合わせれば簡単に取得が可能です。
https://www.googleapis.com/plus/v1/people/me/activities/public?key=APIキー上記のURLの様にする事で取得が出来てしまいます。
[/me/]の部分にはユーザー名またはIDを入力します。
私のプロフィールを取得するのであれば、
https://www.googleapis.com/plus/v1/people/+福巳泉川ふっくん/activities/public?key=APIキーの様にすると取得が出来るのです。
またIDなどで取得する場合は[me]の部分をIDとそのまま置き換える事で取得が出来ます。
https://www.googleapis.com/plus/v1/people/103883213408660487064/activities/public?key=APIキー
どちらでも同じく取得出来ます。
GETで取得出来るデータ形式はJSONP形式で、PHPで取得して配列に入れれば簡単にデータの一部を取り出す事が出来ます。
// ファイルからJSONを読み込み
$json = file_get_contents("https://www.googleapis.com/plus/v1/people/103883213408660487064/?key=APIキー");
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$obj = json_decode($json, true);
print_r($obj);
データベースを使わないCSMの仕様(IzumikawaCMS)
今回私が作成した自作CMSの仕様をご紹介したいと思います。
ある程度のPHPスキルがある方であれば簡単に作成出来てしまう物なのです。
CMS(コンテンツマネージメントシステム)と聞くと大規模なプログラムと思われるかもしれません。
ただWordPressなどはそれなりの機能がある為大規模なプログラムになるのですが、実際要らない機能だってあります。ましてそれなりに知識があれば機能をフル活用しなくともそれ以上の物が作れてしまうのです。
要らない機能を取り除いて自分仕様のCMSは、ある程度の知識があれば作成出来ます。
何故データベースを使わないのか?
この質問については恥ずかしいですが、私はあまりデータベースが得意ではありません。
でもデータベースを使わないCMSは利点だってあります。
無料レンタルサーバーなどでは一部データベースが使えない所だっています。
大体PHPが使えればデータベースも付属として使えるのですが使えない所も結構あります。
この場合データベースを使わないCMSの方が有利なんです。
(※最近データベースが素敵な所が分かった。)
CMSに求める機能
ここは一番重要な所です。自分仕様なので、欲しい機能なら何でもいいから搭載しましょう。
私は以下の機能をCMSに搭載しました。
- お知らせ追加機能
- お知らせリスト編集機能
- ヘッダー情報編集機能
- ブログ記事投稿機能
- ブログ記事一覧管理機能
- ブログ記事更新機能
- プロフィール編集機能
この7つの機能をCMSに搭載しました。
これでも結構機能はあると思われますが、至ってシンプルなソースで出来ました。
付けたい機能によって大規模な物かが決まります。
ブログ記事一覧表示
ブログ記事一覧表示ではデータベースを使っていない為csvでの管理になりました。
記事投稿時にcsvに記事情報を書いていきます。
Bloglog.csv
タイトル,記事ファイル名,日付,記事ID,タグ,ほほう数 タイトル,20131228052258.txt,2013年12月28日_05時22分58秒,タグ,20131228052258,0
この様な形式のcsvを新しい物順に上から追記して行きます。これを一覧表示します。
>>一覧表示したい物
[タイトル表示] [記事文字列] [投稿日] [ほほう数]
これだけをcsvから取り出します。
表示したい物になっている物の大体はCSVから取り出せばいいです。
[記事文字列]はcsv[1]にあるファイル名から取り出してHTMLなどをエスケープして特定の文字数を表示すれば簡単に表示出来ます。
if($_GET['bol'] == ""){
$document_data_print = 5; //表示する件数
$link_data = '秘密/'; //リンク先ディレクトリ
if($csv_file = fopen('秘密/log.csv', 'r')){
for($i=0; $i < 6; $i++){
$csv_aeeay = fgetcsv($csv_file);
$link = $link_data . $csv_aeeay[1]; //記事リンク先生成
$txt_document_data = strip_tags(file_get_contents($link));
if($txt_document_data !== ""){
print '' . $csv_aeeay[0] . '
'; //タイトル表示
print mb_substr($txt_document_data, 0, 700);
print ' ...続きを見る
';
print '投稿日 ほほう[' . $csv_aeeay[5] . ']
';
}
}
$link_data = array();
$link_data[] = '';
$link_data[] = '?bol=2';
}
}else{
//GET送信された時の処理
$file_opn_count = $_GET['bol']*5;
$file_opn_count = $file_opn_count+1;
$file_opn_count1 = $file_opn_count-5; //表示件数の初期値
$link_data = '秘密/'; //リンク先ディレクトリ
$txt_dataarray = array(); //投稿の配列作成
$file_foprn = fopen('秘密/log.csv', 'r');
$if_link = 0;
while(($file_array_data = fgetcsv($file_foprn)) !== FALSE){ //データを配列化
$txt_dataarray[] = $file_array_data;
}
for($i=$file_opn_count1; $i < $file_opn_count; $i++){
$link = $link_data . $txt_dataarray[$i][1];
$txt_document_data = strip_tags(file_get_contents($link));
if($txt_document_data !== ""){
print '' . $txt_dataarray[$i][0] . '
';
print mb_substr($txt_document_data, 0, 700);
print ' ...続きを見る
';
print '投稿日 ほほう[' . $txt_dataarray[$i][5] . ']
';
$if_link++;
}
}
if($_GET['bol'] !== '2'){
if(!$if_link < 6){
$before = $_GET['bol']-1;
$next = $_GET['bol']+1;
$link_data = array();
$link_data[] = '?bol=' . $before;
}else{
$before = $_GET['bol']-1;
$next = $_GET['bol']+1;
$link_data = array();
$link_data[] = '?bol=' . $before;
$link_data[] = '?bol=' . $next;
}
}else{
$link_data = array();
$link_data[] = '';
$link_data[] = '?bol=3';
}
}
一応これはセキュリティ対策は悪いですが、投稿者は私自身なのである程度の事は信用しています。他にも投稿時にある程度の対策はしているので大丈夫です。
次にブログ表示ソースです。
今回はここまでです。これ以上見せてしまうと、色々とバレてしまうので^^;
ましてデータベースも使っていないのでデータのありかなどがバレたら大変です。
次にブログ表示ソースです。
//ユーザーエージェントで対応サイトへ移動させる
if(mb_strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone') !== FALSE){
header("Location: Mobile/index.php?url=" . $_GET['url'] . "#Blog_print");
}elseif(mb_strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== FALSE){
header("Location: Mobile/index.php?url=" . $_GET['url'] . "#Blog_print");
}
if($file = fopen('Blog_log/log.csv', 'r')){
$data = array();
while(($data_array = fgetcsv($file)) !== FALSE){
if($_GET['url'] == $data_array[4]){
$data[] = $data_array[0]; //タイトル
$data[] = $data_array[1]; //リンク
$data[] = $data_array[2]; //投稿日
$data[] = $data_array[3]; //キーワード
$data[] = $data_array[4]; //ID
$data[] = $data_array[5];
}
}
}
//表示部分
print $print0 . $print1 . $print2 . $print3 . $print4 . $print5 . $print6;
今回はここまでです。これ以上見せてしまうと、色々とバレてしまうので^^;
ましてデータベースも使っていないのでデータのありかなどがバレたら大変です。
Yahooのテキスト解析APIを使ってみた。
今回はYahooのテキストAPIを使ってみたいと思います。
まだアプリケーション登録がお済みではない方は登録をして来てください。
[アプリケーションIDを登録する]
アプリケーションIDとはAPIを使う中で一番重要なIDで、これらを使ってアプリケーションの利用制限をしている様です。1つのアプリケーションIDにつき24時間以内で50000件のリクエストが上限となっている様ですのでそれ以上に活用するのであれば2個登録しておいてエラーが返った時に2個目を使用するといった形にすればいいと思います。
GETリクエストとPOSTリクエストがあるみたいですが今回はGETリクエストでやってみましょう。
■サンプルリクエストURL:
http://jlp.yahooapis.jp/MAService/V1/parse? appid=<あなたのアプリケーションID> &results=ma,uniq &uniq_filter=9 %7C10 &sentence=<解析する文字列>
このURLをPHPで処理するとなると簡単に想像出来ますよね?
アプリケーションIDと文字列の所に値をPHPで設定するだけです。 ではソースは見なくても分かると思いますが分からない人の為に仮に以下のソースを作ってみました。
たったこけだけのコードで一応取得出来ます。
サンプルではフォームから送信された文字列をそのまま「$url」にセットしURLを生成しています。
結果は「print_r($xml_array);」形式で表示されています。
まだアプリケーション登録がお済みではない方は登録をして来てください。
[アプリケーションIDを登録する]
アプリケーションIDとはAPIを使う中で一番重要なIDで、これらを使ってアプリケーションの利用制限をしている様です。1つのアプリケーションIDにつき24時間以内で50000件のリクエストが上限となっている様ですのでそれ以上に活用するのであれば2個登録しておいてエラーが返った時に2個目を使用するといった形にすればいいと思います。
GETリクエストとPOSTリクエストがあるみたいですが今回はGETリクエストでやってみましょう。
■サンプルリクエストURL:
http://jlp.yahooapis.jp/MAService/V1/parse?
このURLをPHPで処理するとなると簡単に想像出来ますよね?
アプリケーションIDと文字列の所に値をPHPで設定するだけです。 ではソースは見なくても分かると思いますが分からない人の為に仮に以下のソースを作ってみました。
$app_id = '取得したアプリケーションID'; $text = $_POST['text']; $url = 'http://jlp.yahooapis.jp/MAService/V1/parse?appid=' . $app_id . '&results=ma,uniq&uniq_filter=9%7C10&sentence=' . $text; $xml_filedata = file_get_contents($url); $xml_array = simplexml_load_string($xml_filedata); print_r($xml_array);
たったこけだけのコードで一応取得出来ます。
サンプルではフォームから送信された文字列をそのまま「$url」にセットしURLを生成しています。
結果は「print_r($xml_array);」形式で表示されています。
PHPへGETで値を送る。
今回PHPの"GET"への理解が浅い方の為にGETの使い方と便利な使い方をご紹介したいと思います。
そもそもGETの使い道が分からない方は多いのではないでしょうか?(初心者に限る)
恐らく初心者さんの半分はPOSTを使って値を送っていると思います。
そこでGETとPOSTの違いを初めに紹介したいと思います。
簡単に言うとGETとPOSTはどちらも値を送信しますが、GETは値が見えてPOSTは見えないと言う事が一番分かりやすいかと思います。次にGETはURLに直接埋め込んで送信出来てPOSTはフォームから送信されると言う事です。
いまいちGETの使い方が分かりませんよね? 「値はフォームから送信しちゃえばいいじゃん」と言う考えを持つ方は少なくないと思います。 ですが、GETにもそれなりの使い道があって存在しています。 例えば、ブログなどでも使われています。他にもGoogleの検索にも使われています。
ブログで例えると、記事ごとに1つのページを作るとデータ量を無駄に大きくしてしまいますよね?でもGETでブログ記事のデータを送れば1つのphpファイルで複数の記事を表示する事が出来ます。ただGTEで送られた値を元に記事ファイルを読み込むだけなので無駄なHTMLファイルを作らなくても、すむわけです。
私のWebサイトのブログでもGETで記事ファイルを管理しています。
記事一覧ページに記事を一覧表示してリンクにはGETで記事IDを埋め込んでいます。
そのリンクをクリックしたらGETでPHPに値が送られて、送られて来た記事IDを元に記事を探して表示すると言う形をとっています。
この様にリンクに値を埋め込むにはGETを使うと便利なのです。
では一応以下に値を埋め込む例を書きます。
「ファイルパス.php?name=値」と言う形で埋め込みます。
複数の値を埋め込むには&で区切る事が出来ます。
「sample.php?id=abc&pass=12345&name=いずみん」の様に何個でも値を送る事が出来ます。
ただ上記の例の様にidやpassなどを送ってログイン出来るシステムにすると悪意のあるユーザーが簡単にidとpassを特定出来てしまいます。
GETの弱点は見える為大事な値はSESSIONやPOSTなどで扱いましょう。
■GETをPHPで受け取るサンプル
if($_GET['sample'] !== ""){
print 'GETで送られて来た値は' . $_GET['sample'] . 'です。';
}else{
print 'GETに値が存在しません。';
}
PHPでCSVファイルの操作
今回CSVファイルの操作をご紹介しようと思います。
CSVファイルとXMLの違いは、XMLでは特定の要素(配列)でデータにアクセス出来る。CSVでは特定の要素は無い変わりに番号付きの配列で情報を取得出来ます。
どちらも配列としてデータを取得出来ます。
CSVの利点は通常の様にデータを追加出来る事です。
まずはCSVの中身を決めましょう。
■sample.csv
一般的にファイルを読み込み方法としては以下の方法になります。
■index,php
結果:
これが基本的な方法で情報を取得しています。
ソースを見てもあまり仕組みは理解出来ないですよね?
なら一度どのような形で取得されているのか見てみましょう。
■index.php
結果:
見たらわかるのですが、
1回の読み込みに1行取得しています。
2回目は2行目を読み込み配列に渡します。
これで原理が分かったと思います。
以下の様にして特定の情報だけの一覧取得も可能です。
タイトル,更新日,記事ファイル,ID サンプルタイトル,0000年00月00日,sample_document.txt,0001 サンプルタイトル2,0000年00月00日,sample_document2.txt,0002 サンプルタイトル3,0000年00月00日,sample_document3.txt,0003
一般的にファイルを読み込み方法としては以下の方法になります。
■index,php
<?php if($csv_file = fopen('sample.csv', 'r')){ print '<table border=1>'; while(($csv_print = fgetcsv($csv_file)) !== FALSE){ print '<tr>'; for($i=0; $i < count($csv_print); $i++){ print '<td>' . $csv_print[$i] . '</td>'; } print '</tr>'; } print '</table>'; } ?>
結果:
| タイトル | 更新日 | 記事ファイル | ID |
| サンプルタイトル | 0000年00月00日 | sample_document.txt | 0001 |
| サンプルタイトル2 | 0000年00月00日 | sample_document2.txt | 0002 |
| サンプルタイトル3 | 0000年00月00日 | sample_document3.txt | 0003 |
これが基本的な方法で情報を取得しています。
ソースを見てもあまり仕組みは理解出来ないですよね?
なら一度どのような形で取得されているのか見てみましょう。
■index.php
<?php $csv_file = fopen('sample.csv', 'r'); for($i=0; $i < 3; $i++){ $csv = fgetcsv($csv_file); print_r($csv); } ?>
結果:
| Array | |
| ( | |
| [0] => タイトル | |
| [1] => 更新日 | |
| [2] => 記事ファイル | |
| [3] => ID | |
| ) | |
| Array | |
| ( | |
| [0] => サンプルタイトル | |
| [1] => 0000年00月00日 | |
| [2] => sample_document.txt | |
| [3] => 0001 | |
| ) | |
| Array | |
| ( | |
| [0] => サンプルタイトル2 | |
| [1] => 0000年00月00日 | |
| [2] => sample_document2.txt | |
| [3] => 0002 | |
| ) |
見たらわかるのですが、
1回の読み込みに1行取得しています。
2回目は2行目を読み込み配列に渡します。
これで原理が分かったと思います。
以下の様にして特定の情報だけの一覧取得も可能です。
<?php $csv_file = fopen('sample.csv', 'r'); for($i=0; $i < 3; $i++){ $csv = fgetcsv($csv_file); print $csv[1] . '<br>'; } ?>
配列の重要性
初めてプログラミングの入門書を読んだ方は配列の使い道をあまり分かってない方も多いのではないでしょうか?基本入門書では変数の説明の後に配列の説明が入ります。こうなると初心者さんは「必要なデータ入れるなら普通に変数使えばよくね?」と思ってしまう事が多々あります。
ですが色んな意味で配列は便利な物なのです。
その配列の重要性を今回説明させて頂きたいと思います。
現在CMS制作をしているのですが、現在作成しているCMSはSQLを一切使わず「csv/txt」だけでデータを管理する様な物を作成しています。私も今までほとんど配列に頼った事はなくて今回の制作でSQLを使わない事で配列の重要性を改めて知る事になりました。
まず私が今回の制作で配列を使ったのは、「ブログ記事一覧表示」の部分で使いました。
今回の仕様では1ページにつき5件表示すると言う物
ブログ記事には更新ログと言うのがありログを元に一覧表示する
ログはcsvファイル
csvファイルを読み取るのに配列形式になるのです。
何故ここで配列を使うのかと言うと最初の作戦ではtxtファイルに記事データのリンクだけを並べてfile()関数で配列に回していました。ですがこれだとタイトルの適切な取得や投稿日の取得検索なども出来ないからです。
ならcsvに記事データのリンクとタイトルと検索キーワードをまとめれば後々の作業も楽になるからです。
あと、記事一覧表示のページでは「次へ」ボタンがあり過去の記事も巡る事が可能です。
この時forで5回ループさせれば更に配列の扱いが楽になるからです。
ですが色んな意味で配列は便利な物なのです。
その配列の重要性を今回説明させて頂きたいと思います。
現在CMS制作をしているのですが、現在作成しているCMSはSQLを一切使わず「csv/txt」だけでデータを管理する様な物を作成しています。私も今までほとんど配列に頼った事はなくて今回の制作でSQLを使わない事で配列の重要性を改めて知る事になりました。
まず私が今回の制作で配列を使ったのは、「ブログ記事一覧表示」の部分で使いました。
今回の仕様では1ページにつき5件表示すると言う物
ブログ記事には更新ログと言うのがありログを元に一覧表示する
ログはcsvファイル
csvファイルを読み取るのに配列形式になるのです。
何故ここで配列を使うのかと言うと最初の作戦ではtxtファイルに記事データのリンクだけを並べてfile()関数で配列に回していました。ですがこれだとタイトルの適切な取得や投稿日の取得検索なども出来ないからです。
ならcsvに記事データのリンクとタイトルと検索キーワードをまとめれば後々の作業も楽になるからです。
あと、記事一覧表示のページでは「次へ」ボタンがあり過去の記事も巡る事が可能です。
この時forで5回ループさせれば更に配列の扱いが楽になるからです。
プログラミング言語の学び方
皆さん久しぶりです。
毎度このブログを見てくださってありがとうございます。
今年はブログの更新が全然出来なくてすみません。
ほぼネタ切れなもんで(´Д`;)
今回ブログラミング言語の学習方法について記事にして行きたいと思います。
「どんなプログラミング言語を始めればいいのか?」「効率のいい学習方法が無いのか?」
など思う方の参考になればと思います。
「プログラミングとはどんな世界なのか?」「プログラミングは難しいのか?」「最初はどんな言語から勉強すればいいのか?」「効率の良い学習方法は無いのか?」
プログラミングをする中で様々な疑問があると思います。
難しいと思いなかなかプログラミングに手が出せなかったり、
でもプログラミングは実際基礎や文法を覚えれば難しいなんて思いません。
世の中に居るプログラマーは嫌でプログラミングをしている人は居ません。
何故ならば「興味があって入った世界」だからです。
興味がなければプログラミングする出来ないでしょう。
それどプログラミングは中毒性があるのです。
「意味の分からないコードが並んでる」「怖い人のイメージがある」「自分には無縁」など、
思われるかもしれません。
1.意味の分からないコードが並んでいる
プログラミング言語とは簡単に言うとパソコンとのコミュニケーションをする物と思えばいいです。パソコンの世界では「0,1」の世界なので私達人間では理解する事が難しい世界になるんです。ですが人間とパソコンが唯一コミュニケーションが取れるのがプログラミング言語なのです。
2.怖い人のイメージがある
プログラミングをしている時点で怖いと思われるかもしれませんが、ただパソコンとお話をしているだけですよ♪♪
3.自分には無縁
確かに無縁だと思いますが様々な所で皆さんの暮らしを支えています。なので少しはプログラミング言語が生まれた文化とプログラマーに感謝しましょう。今の時代身の回りにプログラミングして作られた物が沢山あります。家電製品の制御などでは「Java」と言う言語が使われています。
パソコンと言う物はOSと言うプログラムで動いています。OSが無いパソコンはただの鉄クズなのです。OSで代表的な物と言うとやはり「Windows」ですね他にもMacなどもあり、今の時代自作OSを作る人々も増えてきました。
そこで疑問が!
パソコンが無い時代にパソコンのOSを作るにはどうするんだ?
自分もつい最近知った事ですが、初めてのデータは紙テープだそうです。パソコンの大事な頭脳CPUは0,1を処理します。この0,1のファイルはバイナリファイルといい、このバイナリーファイルをCPUで処理してプログラムの結果を出すのです。
CPUは0を電気無し1を電気ありで動作します。なので、電気を流したり流さなかったりの動作をすればCPUは処理するんです。(単純に言うと)
そのバイナリーデータを昔は紙テープに穴をあけCPUに処理をさせていたんですね(´∀`*)
詳しくは分かりませんが確かに紙テープでCPUを動かす事は出来そうです。先程0,1の世界は人間が読むのは難しい世界と言いましたが、昔の開発者は0,1を理解していたんです。
でもどんな言語を最初に始めたらいいのか分からない方も多いのでは?
多くのプログラミング言語の開発環境を整えるには時間や手間がかかってなかなか始めるのも難しいはずです。出来れば手間がかからなくて直ぐにプログラミングを始めたいと言う方は、
JavaScript
をやってみるといいです。
この言語はブラウザー上で動作するプログラミング言語で、手軽に始める事が出来ます。
ですが、HTMLの知識が多少必要です。
web上のプログラミング言語の、
まず最初に今覚えようとしている言語で何が出来るか調べてどんな物が作れるのか知る必要があります。何が作れるか分からず勉強してしまうと、実際何を作っていいのか分からず入門書のプログラムしか作れなくなってしまいます。
次に、入門書のプログラムをそのまま書かない。ちょっとルートの外れたコードを書けばプログラミングの視野が広がります。入門書はホントに基本的な事しか書かないので視野が狭いです。時には、
と書かれているのを、
みたいにアレンジする事も時には重要です。
実際プログラミングとは決められたレイアウトで作成するのではなく、自分でやりたい事を自分自信で決めて書いて行く物です。なので入門書の物をそっくりそのまま書いても意味が無い事を理解して下さい。
そんな事コピペでどうにかプログラムを作っている奴と同じなんです。
あとは学習のポイントなどは無いのですが、入門書を読み終わったら実際に作ってみたいプログラムを作りましょう。入門書に出てこなかった課題などは調べたら出てきます。時には人のプログラムを参考にして自分なりのプログラムを作っていきましょう。
※そのままコピペするのではなく実際に自分で手で打ちましょう。
毎度このブログを見てくださってありがとうございます。
今年はブログの更新が全然出来なくてすみません。
ほぼネタ切れなもんで(´Д`;)
今回ブログラミング言語の学習方法について記事にして行きたいと思います。
「どんなプログラミング言語を始めればいいのか?」「効率のいい学習方法が無いのか?」
など思う方の参考になればと思います。
「プログラミングとはどんな世界なのか?」「プログラミングは難しいのか?」「最初はどんな言語から勉強すればいいのか?」「効率の良い学習方法は無いのか?」
プログラミングをする中で様々な疑問があると思います。
難しいと思いなかなかプログラミングに手が出せなかったり、
でもプログラミングは実際基礎や文法を覚えれば難しいなんて思いません。
世の中に居るプログラマーは嫌でプログラミングをしている人は居ません。
何故ならば「興味があって入った世界」だからです。
興味がなければプログラミングする出来ないでしょう。
それどプログラミングは中毒性があるのです。
プログラミングとは何なのか?
一般的にプログラミングをした事が無い方は、「意味の分からないコードが並んでる」「怖い人のイメージがある」「自分には無縁」など、
思われるかもしれません。
1.意味の分からないコードが並んでいる
プログラミング言語とは簡単に言うとパソコンとのコミュニケーションをする物と思えばいいです。パソコンの世界では「0,1」の世界なので私達人間では理解する事が難しい世界になるんです。ですが人間とパソコンが唯一コミュニケーションが取れるのがプログラミング言語なのです。
2.怖い人のイメージがある
プログラミングをしている時点で怖いと思われるかもしれませんが、ただパソコンとお話をしているだけですよ♪♪
3.自分には無縁
確かに無縁だと思いますが様々な所で皆さんの暮らしを支えています。なので少しはプログラミング言語が生まれた文化とプログラマーに感謝しましょう。今の時代身の回りにプログラミングして作られた物が沢山あります。家電製品の制御などでは「Java」と言う言語が使われています。
パソコンの歴史を辿ればプログラミングに深く興味を持つ!
パソコンと言う物はOSと言うプログラムで動いています。OSが無いパソコンはただの鉄クズなのです。OSで代表的な物と言うとやはり「Windows」ですね他にもMacなどもあり、今の時代自作OSを作る人々も増えてきました。
そこで疑問が!
パソコンが無い時代にパソコンのOSを作るにはどうするんだ?
自分もつい最近知った事ですが、初めてのデータは紙テープだそうです。パソコンの大事な頭脳CPUは0,1を処理します。この0,1のファイルはバイナリファイルといい、このバイナリーファイルをCPUで処理してプログラムの結果を出すのです。
CPUは0を電気無し1を電気ありで動作します。なので、電気を流したり流さなかったりの動作をすればCPUは処理するんです。(単純に言うと)
そのバイナリーデータを昔は紙テープに穴をあけCPUに処理をさせていたんですね(´∀`*)
詳しくは分かりませんが確かに紙テープでCPUを動かす事は出来そうです。先程0,1の世界は人間が読むのは難しい世界と言いましたが、昔の開発者は0,1を理解していたんです。
プログラミングをちょっとしてみたい!!
皆さんもここまで読みすすめて来るとそろそろプログラミングをやってみたいはず、でもどんな言語を最初に始めたらいいのか分からない方も多いのでは?
多くのプログラミング言語の開発環境を整えるには時間や手間がかかってなかなか始めるのも難しいはずです。出来れば手間がかからなくて直ぐにプログラミングを始めたいと言う方は、
JavaScript
をやってみるといいです。
この言語はブラウザー上で動作するプログラミング言語で、手軽に始める事が出来ます。
ですが、HTMLの知識が多少必要です。
web上のプログラミング言語の、
- PHP
- JavaScript
- Java
これを難しい順位で並べると、
- Java
- JavaScript
- PHP
になります。
何故2位の言語を勧めるのか?
それは、開発環境を整える必要がなく手軽に本格的なプログラミングが出来るからです。
phpは関数定義型言語なので文法など覚えれば1週間以内にCMSを作れる様になります。
ですが、JavaScriptはオブジェクト指向プログラミングがリアルに出来る為お勧めします。
学習方法
今回はphpの学習方法を例にして説明して行きます。まず最初に今覚えようとしている言語で何が出来るか調べてどんな物が作れるのか知る必要があります。何が作れるか分からず勉強してしまうと、実際何を作っていいのか分からず入門書のプログラムしか作れなくなってしまいます。
次に、入門書のプログラムをそのまま書かない。ちょっとルートの外れたコードを書けばプログラミングの視野が広がります。入門書はホントに基本的な事しか書かないので視野が狭いです。時には、
<?php if($i=0; $i <= 10; $i++) { print $i; } ?>
と書かれているのを、
<?php if($i=0; $i <= 10; $i++) { print '現在[' . $i . ']回繰り返しました。\r\n'; } ?>
みたいにアレンジする事も時には重要です。
実際プログラミングとは決められたレイアウトで作成するのではなく、自分でやりたい事を自分自信で決めて書いて行く物です。なので入門書の物をそっくりそのまま書いても意味が無い事を理解して下さい。
そんな事コピペでどうにかプログラムを作っている奴と同じなんです。
あとは学習のポイントなどは無いのですが、入門書を読み終わったら実際に作ってみたいプログラムを作りましょう。入門書に出てこなかった課題などは調べたら出てきます。時には人のプログラムを参考にして自分なりのプログラムを作っていきましょう。
※そのままコピペするのではなく実際に自分で手で打ちましょう。
他のサイトの記載情報の一部を取り除き表示する方法
※法律に詳しく無いのですが多分無断で今から紹介する事をやった場合罰せられるかもしれません。やる場合は、個人的に行って下さい。
今回他のサイトの記載情報の一部を取り除き自分のwebページで表示する方法を、
紹介したいと思うのですが今から説明する物は、ライブラリーを使用しているので、
先にダウンロードを済ませて下さい。
http://simplehtmldom.sourceforge.net/
ダウンロードが出来たら、「simple_html_dom.php」が呼び出せる様に、準備して下さいね♪
さてまず今回目標とするサイトは、以下のサイトです。
http://tvanimedouga.blog93.fc2.com/
アニメ好きなら大体の方が知っているサイトですね!
このサイトのアニメ情報を表示しちゃおうと思います。
そして記事内の取得する部分は、「class="mainEntryMore"」です。
このクラスは、全ページ共通のクラスなので、必ず広告下のリンクを表示する事が可能です。
ただこの広告邪魔ですね^^;
広告が邪魔なら見えなくしてしまえばいいのですよw
これで、広告も見えなくなってスッキリしますね♪
さてまだ説明していませんでしたねw
まず以下の様に書いてみて下さい。
「repuire_once()」は、ライブラリーを読み込む関数です。
最初にダウンロードしたライブラリーを読み込みます。
「$html = 」この変数には、読み込むページのURLを書きます。
最後の('div[class=])には、class=の次にクラス名を書きます。
これで準備は、おk
これを起動するとページの特定の部分が読み込まれると思います。
今回目標としたサイトは、Blogです。
なのでRSSなどを元に自分のサイトで複数表示してみました。
手順的に、
まずXMLの必要な部分を読み込みます。
重要な物は、$linkです。
この$linkを元に特定の部分を読み込んでいます。
ようするにリンクがあればなんとかなります。
XMLよりもっといっぱい取得したい場合は、以下の様にしたらいいと思います。
試した事無いから分かりませんが多分論理的にいけると思います。
以上です。
あとは、取得した記事をHTMLファイルとして保存したりなど自由に出来ますので、
色々試してみて下さい。
今回他のサイトの記載情報の一部を取り除き自分のwebページで表示する方法を、
紹介したいと思うのですが今から説明する物は、ライブラリーを使用しているので、
先にダウンロードを済ませて下さい。
http://simplehtmldom.sourceforge.net/
ダウンロードが出来たら、「simple_html_dom.php」が呼び出せる様に、準備して下さいね♪
さてまず今回目標とするサイトは、以下のサイトです。
http://tvanimedouga.blog93.fc2.com/
アニメ好きなら大体の方が知っているサイトですね!
このサイトのアニメ情報を表示しちゃおうと思います。
そして記事内の取得する部分は、「class="mainEntryMore"」です。
このクラスは、全ページ共通のクラスなので、必ず広告下のリンクを表示する事が可能です。
ただこの広告邪魔ですね^^;
広告が邪魔なら見えなくしてしまえばいいのですよw
<style type="text/css"> #a789eba3{ display: none; } </style>
これで、広告も見えなくなってスッキリしますね♪
さてまだ説明していませんでしたねw
まず以下の様に書いてみて下さい。
<?php require_once('simple_html_dom.php'); $html = file_get_html('http://tvanimedouga.blog93.fc2.com/blog-entry-14898.html'); echo $html->find('div[class=mainEntryMore]', 0)->innertext; ?>
「repuire_once()」は、ライブラリーを読み込む関数です。
最初にダウンロードしたライブラリーを読み込みます。
「$html = 」この変数には、読み込むページのURLを書きます。
最後の('div[class=])には、class=の次にクラス名を書きます。
これで準備は、おk
これを起動するとページの特定の部分が読み込まれると思います。
取得した記事を自分のサイトの物みたいにしたい!!
さて次は、ちょっと複雑?になるかもしれませんが以下の様にする事も可能です。<?php $xmlname = 'http://tvanimedouga.blog93.fc2.com/?xml'; $xml = simplexml_load_file($xmlname); require_once('simple_html_dom.php'); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> #a789eba3{ display: none; } </style> </head> <body> <?php for($i=0; $i < 14; $i++) { $link = $xml -> item[$i] -> link; $title = $xml -> item[$i] -> title; $description = $xml -> item[$i] -> description; $animatxt = <<<TXT <h2>$title</h2> <h3>($description)の動画は、以下のリンクへ移動して下さい。</h3> TXT; $html = file_get_html($link); print $animatxt; echo $html->find('div[class=mainEntryMore]', 0)->innertext; print '<br><hr>'; } ?> </body> </html>
今回目標としたサイトは、Blogです。
なのでRSSなどを元に自分のサイトで複数表示してみました。
手順的に、
まずXMLの必要な部分を読み込みます。
重要な物は、$linkです。
この$linkを元に特定の部分を読み込んでいます。
ようするにリンクがあればなんとかなります。
XMLよりもっといっぱい取得したい場合は、以下の様にしたらいいと思います。
for($i=15251; $i < 15755; $i++) { $url = 'http://tvanimedouga.blog93.fc2.com/blog-entry-' . $i . '.html';
試した事無いから分かりませんが多分論理的にいけると思います。
以上です。
あとは、取得した記事をHTMLファイルとして保存したりなど自由に出来ますので、
色々試してみて下さい。
XMLを(読み込み・書き込み・消去)の処理をphpでやってみました。
前回投稿した記事で、forで読み込みましたそれで他の関数でも出来るよと言うアドバイスを、
G+で貰ったのですが今の自分は、forでやるのが覚えやすいようです。m(_ _)m
そして話に戻るのですが今回xmlの操作を大体やってみました。
読み込み・書き込み・消去
全て簡単なソースの紹介だけなので解説はも省略します。
G+で貰ったのですが今の自分は、forでやるのが覚えやすいようです。m(_ _)m
そして話に戻るのですが今回xmlの操作を大体やってみました。
読み込み・書き込み・消去
全て簡単なソースの紹介だけなので解説はも省略します。
XML読み込み
<?php $xmlname = 'dblog.xml'; $filename = 'fors.txt'; $xml = simplexml_load_file($xmlname); $file = file_get_contents($filename); for($i=0; $i < $file; $i++) { $xmllo = $xml -> b[$i]; print $xmllo; } ?>
XML書き込み
<?php $filename = 'fors.txt'; $xmlname = 'dblog.xml'; $file = file_get_contents($filename); $xml = simplexml_load_file($xmlname); $taimu = $file+1; $xml -> b[$taimu] = $taimu; $xml -> asXML($xmlname); file_put_contents($filename, $taimu); ?>
XML消去
<?php $xmlname = 'dblog.xml'; $xml = simplexml_load_file($xmlname); $xml -> b[1] = ''; $xml -> asXML($xmlname); ?>
※ソースの中に不要では?
と思う$fileなどありますがこれは、全てのphpなどを合わせた時に役立つ物です。
- dblog.xml
- fors.txt
(1)は、主役のXMLファイルです。
<?xml version="1.0" encoding="utf-8"?> <test> <b>0</b> <b></b> <b>2</b> <b>3</b> <b>4</b> <b>5</b> </test>
(2)は、システム内でちょこちょこ使われている数字のファイルです。
forなどで繰り返しする時このファイルに書かれている数字を元に繰り返しします。
他にも書き込み時にファイルに書かれている数字+1として配列の次の数字を考えたりします。
初期値は、6 です。





















