ICT関連の学習備忘録

ICTの学習をアウトプットするワークブックサイト

ICT関連の学習備忘録

記事ページ 1 2 3 4 5 6 7 8 9 10 11 12 13 

2019-08-17 : PHPとHTML上部に謎の改行・・解決。

ずっと気になってた謎のホワイトスペースやっと解明というか解決した。

※先に結論だけ言うと文字コードが「UTF-8 with BOM」になってたのが原因


このサイトのHTMLはヘッダ情報とメニューをPHPでincludeしてて
メインのメニューは上部と右側がメニューになってるPHPで
サブページ他は上部メニューで右側をファイルリストにしてまして(してた。)

ちなみにhtmlファイルの1行目からPHPで書いてる
---------------------------------------
<?php
include './hogehoge.php';
/*ヘッダ情報、メニューを外部入力*/
?>
<div(略
---------------------------------------

で、何故かトップページだけ上部に1行謎の空欄というか改行が入ってる。。
(ブラウザからソース開くと<!DOCTYPEより上に改行が入ってる)
で、CSSいじろうかなって思ったところ真っ先に気になる部分で
解消しようと試みたわけです。



とりあえずCSSを疑ってclassとid確認しても問題なし。

で、HTMLファイル自体も確認。特段問題なし。

ヘッダ情報を読み込んでるPHPを消すと問題なし。

やっぱCSSか?って思ってCSSを空にしても改行発生。CSS起因ではない。

やっぱHTML??って思ってサブページの内容をコピペ(includeはindex用)

改行発生。やっぱPHPだわ。includePHPをサブ用のに変えてみる。発生しない。

PHPなのは間違いない。でも構文上特段誤った内容は見受けられない。

index用のPHPにサブページで使ってる(問題の無い)PHPの内容をコピペする。

改善されないOTL

他の内容(index.htmlのHTML)等もサブページと全く同じ内容にコピペしてだめらなら
って考えてたら一つだけ原因になり得るものを思い出した。

確か独習PHPでWindowsのテキストエディタは推奨しないって記載がありーの、
なぜかと言うとファイルのヘッダ部分に余計な文字が(識別系の情報?)入るから
ってな感じのがあったなーと。

で、ファイルをプレーンテキストで新たに作ってその中に同一内容をコピペして
拡張子付けてUTF-8にしたらなんと直ったんです!

ということで厳密には把握しきれて無いけど、結論を言うと
文字コードがおかしくなってた。
最初からUTF-8で作成してそのまま運用すれば良かったのだけど、
どのタイミングで変わったのか、はたまたもとよりそうだったのかは置いといて

文字コードが UTF-8 with BOM になっていたのが原因でした。




2019-08-16 : クラス、メソッド、オブジェクト指向・・

どうも、最近WordPressが恋しい僕です。
もしくはDrupalでも可←。

そう。デザインをなんとかしたい!

が、CSS触るの腰が重いとです。
カテゴリとかコメントとか検索とかボタンでタグ挿入とかアプロダとか
追加したいけどPHPやるとPythonそっちのけになっちゃうので堪える・・・。

そんなPythonの方は、相変わらずクラスとオブジェクト指向がががが
って感じなのでとりあえず慣れてみようって感じで、
以前作ったHigh&Lowゲームを使って
無理やりclassの中に打ち込んで、ほとんどメソッドで処理するようにしてみた。

こういう使い方であってるのかは分からんしただメソッドに下だけで
手続き型プログラミングなのは変わりない・・・よなぁ・・・OTL

んまぁとりあえずコード整理して改めて循環的複雑度を見てみた。
'Loop 20' is too complex (12)

class.py:24:5: C901 'Hilow.cl' is too complex (2)
class.py:49:5: C901 'Hilow.hikaku' is too complex (5)
class.py:71:5: C901 'Hilow.endif' is too complex (2)

見方が分からんのだけど、メソッドごとにコンプレックスが
出てるから合計9って事で良いのかなw 減った\(^o^)/
(try/except使ってないから少し端折ってるけど。)

ただ、少しだけクラス内での引数の動き方が前より分かった気がする((
来週の日中はアルゴのcomplex21を簡略化する試みをしてみる。

PyQはデータベースポチポチやってるけど、
PHPで言うPDOと大体同じだからポジティブに進められてる。
ただ、SQLiteは初めてだから一応DBページの方に備忘録付けてる。


2019-08-15 : python入門おわり。

とりあえずお盆の間にPyQの
「プログラミングを一から学びたい方」のコースは完遂した。
最後の課題、3分の1ぐらいは頑張って書いたけど
結果カンニングした←カンニングしないと多分終わらねw

PyQ初めて10日が経ったがなにか出来るようになったかと言うと
ぶっちゃけ何も変わっていない(ぇ
大文字のEを打つ時上行き過ぎて#押しちゃうっていう
変な癖みたいなのがついてむしろタイピングスキルが下がってる←

ユニットテストが大事なのは分かったけど、ちょっとイライラしてしまう(ぁ
自分のコードは修正するの苦ではないが知らんコードだと…

僕はFlake8を常に使うようにしてPEP8の規約に準じた
パイソニアになろうと思います。

循環的複雑度(McCabe)というコードの複雑さを表す
指数があるらしいから見てみたら
ハイアンドローが → 'Loop 20' is too complex (12)
アルゴが → 'Loop 96' is too complex (21)

1-10 安全なコード
11-20 少し複雑なコード
21-40 複雑なコードでテストが難しくなる
41以上 ヤバイ
っていうざっくりとした評価なんだけど←

高いからすげぇ書いてるってわけじゃなくてむしろ逆で
低いのが理想なんだとさ。
高くしない方法としてはクラスやメソッドで切り出したり
共通化出来るものはまとめるとか。

アルゴ、クラス使ってないしな・・単純に複雑になってて
あんまりよろしくないコードって判断になる。
使って慣れないとどうしようもない・・・。

とりあえず次のコースは「Webアプリ・API」をやってみる
苦痛なユニットテストからだけど飛ばし(ry

2019-08-13 : オブジェクト指向が鬼門ですOTL

基礎学習の方がオブジェクト指向に入りまして。
相変わらずしっくりこないとです。
PyQのコース進捗は405/443修了といったところです。
一日50って結構忍耐使う・・・2,3日で終わらんかったし←

忍耐使うし肩が凝る。何度伸びしたか分からん。

ずっと勉強勉強だと疲れちゃうから
息抜きがてらアルゴのプログラム弄ってたら
コンソール上でのプログラムとしてはもう良いかなって感じに
なっちゃったので、一旦Pythonページの方に貼ることにした。

アルゴ(一人プレイモード)のプログラム

このプログラムの最終目標はあくまでもブラウザ上(もしくはGUI)
でプレイ出来るようにすることだからまだ完成はしてないのだけれども。

あと弄りながら思ったけど、ブラウザ上であればネット対戦って形でも動かせるかなーと。
フラグ要素を少し追加して処理追記する必要があるのは前提としても
理論上と言うか僕が触れるPHPの範囲内で(Pythonじゃないっていうw

リアルタイム対戦だとイメージ出来んけど、あくまでもターン制のゲームだったら
極論ファイルないしDBにそれぞれの状態を記録をしておけば
ターン終了時に一方はクローズ、ターン開始時にもう一方がオープンで
セーブファイルを共有するイメージっていうアナログな感じでなら、出来なくもないっていう話。

2019-08-12 : 記事毎の個別URL生成

記事への個別リンクを貼ろうとして気づいたんだけど、
カテゴリの方は(LinuxとかPHPとか)個別でURL持ってるっていうか
そもそもhtmlなりを手作業で作ってるからそのページへのリンクを渡せるが、
メインページの備忘録が記事単体でのURL無いことに気づいた(遅

トップページの記事数制限の時PHPで表示件数を5件で
GETリクエストからの変数でその5件括り事でのページ(URL)は生成してるとはいえ
それすらも記事数に応じてページと表示記事がズレていく変数だから
固定でのURLにはなってないっていうのもついでに気づいて

取り敢えずメイン記事に固定URLでアクセス出来るようにだけした。
(もちろんPHPで← つか、PHPじゃないとやり方ワカンネw

処理方法は5ページ括りの時とほぼ同じで、記事件数絞って表示より楽だった。

単体記事表示用の
book.htmlを作成してその中にPHPで
$_GETで指定記事へのIDを受け取るようにして
そのIDでDBからピンポイントで該当記事だけを表示する、だけ。

ついでにIFでGETリクエスト情報がない場合は(単純にbook.htmlへのアクセス)
全記事表示になるようにした。

ふと最後にリクエストされた記事が存在しない場合も必要かーってなって
もう一個分岐でid==nullとかしておけばすぐ出来るだろって思ったらところがどっこい。
何やら上手くいかない

if:ID有り
 →該当記事を表示
elseif:リクエスト情報無し
 →全件表示
else:
 →エラーページ

でやろうとしたのだがどうも、elseifの条件で
nullとかfalseとかしても何故かelseまでいかないから、仕方なく
変数(中身0)を用意して、ifとelseifの中で該当変数の数値を変更して
最後に別途条件分岐で
if 変数が0なら
 →エラーページ表示

って形にした。null、none辺りがどうも苦手です・・・。


取り敢えずこの個別URLで、記事検索とかでもリンクを持ってこれるようになったとです。
作れるとは思うけどきっと嵌まるから余裕ができたら記事検索フォームでも足そうかなと右に。

記事一覧(全件表示)
単体記事ページ
エラーページ

記事ページ 1 2 3 4 5 6 7 8 9 10 11 12 13