@Blog{zip358.com}
日常日誌からプログラムやYOUTUBER紹介、旅日記まで日々更新中です。
WEBお問い合わせフォームのお値段はいったい幾ら?
2020.01.17
WEBお問い合わせフォームのお値段はいったい幾らなのか?
堀江貴文氏はデジタルの値段は限りなくゼロに近くなると言っていたけど、無料のWEB申し込みフォームやお問い合わせフォームはある。自分もお問い合わせフォームの簡易的な物を作ってみましたのでファイルをアップしますね。
テンプレートエンジンとしてtwig3.0を使用しています、そのため動作環境はPHP7.2以上になります。ソースコードの可変は行って構いません、またこのソースコードの動作保証などは致しません。WEB担当者様が確認を行いバグ等があれば修正を行ってください。
尚、Composerでtwigをインストール済みという事が前提となります。また送信部分やエラー処理についてはご自身で機能の追加が必要となります。
サンプルページ
https://zip358.com/tool/request/
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>お問い合わせ</title>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
crossorigin="anonymous"></script>
<script src="js/common.js"></script>
<style>
.jumbotron {
background-color: #2bd4d0;
color: #fff;
}
.btn-primary {
color: #fff;
background-color: #2bd4d0 !important;
border-color: #2bd4d0 !important;
}
.input-group-text {
background-color: #2bd4d0;
border: 1px solid #2bd4d0;
}
</style>
</head>
<body>
<div class="jumbotron jumbotron-fluid">
<div class="container">
<h1 class="display-4">お問い合わせ</h1>
<p class="lead">必須項目を入力し送信ボタンを押してください。<br>DEMOのため送信はできません</p>
</div>
<div class="alert alert-warning" id="error_sendmail" role="alert">
</div>
</div>
<form action="index.php" method="POST">
<div class="container">
<div class="row">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">お名前[必須]</span>
</div>
<input type="text" name="name" class="form-control" id="name" placeholder="name" value="{{name}}">
</div>
<div class="alert alert-warning" id="error_name" role="alert">
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">メールアドレス[必須]</span>
</div>
<input type="email" name="email" class="form-control" id="email" placeholder="name@example.com"
value="{{email}}">
</div>
<div class="alert alert-warning" id="error_email" role="alert">
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon1">@</span>
</div>
<input type="text" name="twitter_account" class="form-control" placeholder="twitter account"
aria-label="twitter account" aria-describedby="basic-addon1" value="{{twitter_account}}">
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">お問い合わせ内容[必須]</span>
</div>
<select name="meun" class="form-control" id="exampleFormControlSelect1">
{% for selectop in meun_option %}
<option value="{{selectop.value}}" {{ selectop.value == selectoped ? " selected":"" }}>
{{selectop.name}}</option>
{% endfor %}
</select>
</div>
<div class="alert alert-warning" id="error_meun" role="alert">
</div>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">コメント[必須]</span>
</div>
<textarea name="comment" rows="10" class="form-control" aria-label="コメント">{{comment}}</textarea>
</div>
</div>
<div class="row">
<footer class="blockquote-footer">
<small class="text-muted">
ご自由に記入ください。
</small>
</footer>
</div>
<div class="alert alert-warning" id="error_comment" role="alert">
</div>
<button type="submit" class="mt-2 btn btn-primary btn-lg btn-block">送信する</button>
</div>
</form>
</body>
</html>
<?php
session_start();
require __DIR__ . '/vendor/autoload.php';
use Twig\Environment;
use Twig\Loader\FilesystemLoader;
$loader = new FilesystemLoader(__DIR__.'/templates');
$twig = new Environment($loader);
$meun_option = json_decode(file_get_contents("js/select.json"));
$form = ["name","email","twitter_account","meun","comment"];
$data = [];
if($_POST){
foreach($_POST as $key=>$val){
$_SESSION[$key] = strip_tags($val);
}
}
if($_SESSION){
foreach($_SESSION as $key=>$val){
$_SESSION[$key] = strip_tags($val);
}
}
foreach($form as $key => $val){
$data[$val] = $_SESSION[$val]?$_SESSION[$val]:"";
}
extract($data);
print $twig->render('index.html.twig',["name"=>$name,"email"=>$email,"twitter_account"=>$twitter_account,"selectoped"=>$meun,"comment" => $comment,"meun_option"=>$meun_option]);
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
3.0, 358, 7.2, com, Composer, DOCTYPE, gt, html, https, lt, php, request, tool, Twig, web, www, zip, アップ, インストール, エラー, エンジン, お問い合わせ, コード, ご自身, サンプル, ゼロ, ソース, ため, デジタル, テンプレート, バグ, ファイル, フォーム, ページ, 事, 使用, 保証, 修正, 値段, 処理, 前提, 動作, 堀江貴文, 幾ら, 必要, 担当者, 機能, 無料, 物, 環境, 確認, 簡易的, 自分, 追加, 送信, 部分,
一時間に一回だけAPIを実行するPHPのオブジェクトファイル
2020.01.10
あるユーザーが公開しているプログラミングを参考にして
オブジェクト化してみた。
参考にしたサイトのリンクは下記になります。
phpでapiを切りの良い時刻までキャッシュする
尚、動作環境はPHP5.6以上になります、と言いつつ
動作テストは行っていないので、もしかしたらエラーで動かないかも?
動作内容はJSONファイルの更新時間( hour )と
サーバの 時間 ( hour ) を比べ差異があれば
APIを呼び出し結果をJSONファイルとして上書き保存します。
そのため、一時間に一回だけ更新処理が走ります。
(※CRONで設定していれば)
結果がJSONで返ってこない場合などは可変して頂いて構いません。
もともと自分の案でもないので…。
PHPファイルのダウンロードはこちらから
https://zip358.com/tool/timeKeeper/timeKeeper.zip
ソースコードはこちらになります(* ̄(エ) ̄*)
<?php
class timeKeeper{
public static $json_filename = "abc.json";
public static $json_api_url = "https://example.com/api/?v=1.333";
public static function judge(){
$server_timestamp = time();
$server_time = date('Y/m/d H',$server_timestamp);
$json_timestamp = filemtime(self::$json_filename);
$json_time = date('Y/m/d H',$json_timestamp);
return $server_time === $json_time ? true : false;
}
public static function api_run($opts=null){
if(is_null($opts))return false;
$context = stream_context_create($opts);
$json = file_get_contents(self::$json_api_url, false, $context);
$fp = fopen(self::$json_filename, "w");
fwrite($fp,$json);
fclose($fp);
return self::json_load();
}
public static function json_load(){
$json = file_get_contents(self::$json_filename);
return json_decode($json, true);
}
public static function check(){
if(file_exists(self::$json_filename)){
return self::judge();
}
return false;
}
}
///使用例
if(timeKeeper::check()){
$json = timeKeeper::json_load();
}else{
$opts = array(
"http"=>array(
"method" => "POST",
"header" => "User-Agent: php"
)
);
$json = timeKeeper::api_run($opts);
}
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
5.6, API, class, cron, hour, json, lt, php, public, timeKeeper, エラー, オブジェクト, キャッシュ, コード, こちら, サーバ, サイト, ソース, ダウンロード, ため, テスト, ファイル, プログラミング, ユーザー, リンク, 一, 上書き, 下記, 保存, 公開, 内容, 処理, 動作, 参考, 場合, 実行, 差異, 時刻, 時間, 更新, 案, 環境, 結果, 自分, 設定,
ハローワークサイトの仕様が変わった、使いづらいよ!! #ハローワーク
2020.01.06
本日(高知県)からおそらく高知県のハローワーク検索端末が変わったみたい?ウェブ(ホームページ)のハローワークサイトと統合した形になっている。要するに、わざわざハローワークへ行かなくても自宅で検索できるように
なったということです。
トイウコトデ、自宅でお仕事検索してそのナンバーを控えて最寄りのハローワークに問い合わせするのが便利かと思います。
ちなみにハローワークのサイトってアクションサーブレットで動いているよね。そろそろPHPで動かしたほうが良いじゃないかと思ってしまうのはじぶんだけなのでしょうかね?そしてcommon.jsを見た所、素人ぽっい記述だったが、エラーが一つも出ていないところは関心、ただWARNING(警告)はある。そしてコメント退けるべしとか、難読化しろよとかいろいろ言いたくなる。これ何次元の下請けがやってんだろうか・・・。
https://www.hellowork.mhlw.go.jp/
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
common, go, hellowork, https, JS, mhlw, php, WARNING, www, アクション, ウェブ, エラー, お仕事, こと, コメント, これ, サーブ, サイト, じぶん, トイウコトデ, ところ, ナンバー, ハローワーク, ホームページ, レッド, わざわざ, 一つ, 下請け, 仕様, 何次, 便利, 問い合わせ, 形, 所, 最寄り, 本日, 検索, 端末, 素人, 統合, 自宅, 記述, 警告, 関心, 難読, 高知県,
node-sassをインストールしてコンパイルするときに「あぁうっかり」
2019.07.06
npm install node-sass
上記の記述でインストールします。Node.jsはインストール済みだという
前提で!
コンパイルの仕方はこんな感じです。
node-sass test.scss test.css --output-style expanded
ここでうっかりミスを犯さないで!!SCSSとSASSは記述が違います。
自分はSCSSで記述していたのに、拡張子がSASSになってまして
意味不明の一行目でエラーですとはじかれていた・・・。
ちなみにオプション値を付けずにコンパイルすると
インデントが崩れて美しくないのでオプション値を付けるように
しています。
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
--output-style, css, expanded, install, JS, node, node-sass, npm, SASS, scss, test, インストール, インデント, エラー, オプション, ここ, コンパイル, とき, ミス, 一行, 上記, 不明, 仕方, 前提, 意味, 感じ, 拡張子, 自分, 記述,
PHPのインターフェイスとやら簡単に言えば。
2019.02.16
インターフェイスとはなんぞや?
簡単に言えばこのメソッド名は必ず使えです。
無ければエラーになります。
大規模な開発から中規模な開発時には一応必要かな?
<?php
interface test1{
public function test_11(int $val=1);
public function test_12(string $val="000");
}
class demo implements test1{
public function demo1(int $val=0){
return $this->test_11($val);
}
public function test_11(int $val=1){
return $val;
}
public function test_12(string $val=""){
return $val;
}
}
$demo = new demo();
print $demo->demo1(111);
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
0, 000, 1, 11, class, demo, function, gt, implements, int, interface, lt, nbsp, php, public, return, string, test, this, val, インターフェイス, エラー, メソッド, 大規模, 必要, 簡単, 規模, 開発,
Gmail未読一括既読、最終形態みたいなものです。
2018.07.15
Gmail未読一括既読、最終形態みたいなものです。
どうぞ、お使いください。
前回のプログラムをトリガー呼び出すと下記のエラーが表示されますが
今回のコードを実行してもプログラムエラーは表示されません。
よって未読メールから既読メールになります。
[object Object] を (class) に変換できません。
前回のコードはこちらです。
見比べてみると違いがわかると思います、
ちなみにエラーで落ちていた所は、3行目になります。
function gmailbat () {
gm = GmailApp.search("is:unread");
if(gm.length){
gm.forEach(function(m,i,a){
if(m.isUnread()){
m.markRead();
}
});
}
if(gm.length){
return gmailbat();
}
return true;
}
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
class, function, function gmailbat, gm, gm.forEach, gm.length, GmailApp.search, Gmail未読一括既読, if, is, m.isUnread, m.markRead, object Object, quot, return gmailbat, return true, unread", エラー, トリガー, 既読メール,
「jetpack」と「Japanese AutoTag」の相性が悪くて公開及び更新出来なくなる不具合について
2017.12.21
「jetpack」と「Japanese AutoTag」の相性が悪くて公開及び更新出来なくなる
不具合について対応を行ったので対応を記載します。
このファイルの52行目、53行目あたりでエラー表示される、
wp-content\plugins\jetpack\sync\class.jetpack-sync-queue.php
エラー内容は下記の通りです。
Uncaught exception ‘Exception’ with message ‘Serialization of ‘SimpleXMLElement’ is not allowed’
このエラーが表示されて困ったので対応してみた。
対応したソースはこちら::エラーが出現している部分に型のキャストしてあげると
エラーが出なくなります、これが正しい対応かどうかは分かりませんが
エラーが出なくなったのでひとまずこれで自分は運用していきます。
function add( $item ) { global $wpdb; $added = false; // this basically tries to add the option until enough time has elapsed that // it has a unique (microtime-based) option key while ( ! $added ) { $rows_added = $wpdb->query( $wpdb->prepare( "INSERT INTO $wpdb->options (option_name, option_value, autoload) VALUES (%s, %s,%s)", (string)$this->get_next_data_row_option_name(), serialize((string)$item), 'no' ) ); $added = ( 0 !== $rows_added ); } }
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
'Serialization, 'SimpleXMLElement', $rows_added, $wpdb, autoload, exception, function add, INSERT INTO, is not allowed', it has a unique, Japanese AutoTag, microtime-based, option key, serialize, string, this basically tries to add the option, Uncaught exception, with message, wp-contentpluginsjetpacksync, エラー,
テンソルフロー的な画像解析。
2017.09.03
Tensorflow(テンソルフロー)的な画像解析をやってみました。
コードはオープンで公開する程のものではないので仕組みだけ説明します。
python classify_image.py --image_file test11.jpg.webp
Pythonのモジュールの上記(classify_image.py)のファイルをパラメータ渡しでキックしているだけです。
モジュールはグーグルさんが書いているのを貰ってきただけです、何とも簡単に
画像を解析してくれます。ここまでたどり着くまでには長い道のりがありましたが
手順を教えます。
まず、Tensorflowをインストールして置きます。これはググれば見つかります。
TensorBoardで可視化とかしていませんので割愛します。インストールして
任意の場所に下記のモジュール(models repo)をダウンロードします。
https://www.tensorflow.org/versions/master/tutorials/image_recognition
ダウンロードしたファイルを配下に画像を置けばおわり、その名前と共にファイルをキックして
あげるだけでOKのはずが・・・・。OKじゃねぇ、そう何か動かない。
構文間違っているじゃねぇみたいなエラーを吐くのでファイルを修正します。
この配下に「classify_image.py」ファイルがありますのでこちらを修正します。
紫で囲っている部分を削除してしまいましょう。実際、自分は削除はしませんでした。
あまりPythonの構文を分かっていないので、コマンドラインからは不必要かもしれないけれど・・・。
WEB上で動かす(呼び出す)際は必要かもしれないのでコピってコメントアウトしてます。
コメントアウト後、PHPの関数、execを使い外部コマンドでPythonを実行してみると動きます。
動いた時は感動します。ひとりニヤニヤしてました。
返却されたものを表示しているだけ・・・なんですけどね。
https://www.youtube.com/watch?v=96-5oYVi4Pg
サンプルサイトはこちらです。
http://zip358.site/labo/
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
AM, exec, image_file test11.jpg, models repo, python classify_image.py, TensorBoard, tensorflow, エラー, グーグル, コマンドライン, サンプルサイト, テンソルフロー, テンソルフロー的, パラメータ渡し, ファイル, モジュール, 下記, 外部コマンド, 構文, 画像解析, 配下, 関数,
C#に限らずだけどいろいろ出来ることを知り楽しい。
2016.12.08
C#に限らずだけどいろいろ出来ることを知り楽しい。
VisualStudio2015の無料版でいろいろ作れることが楽しい。
そして販売可能だから尚更、楽しいですね。
https://www.visualstudio.com/ja/vs/ide/
無償版でパッケージとして提供できるので
はっきり言って、昔のVisual Studio使っている人は
乗り換えたほうが良いと思います。
ちなみに無償版をDLするときに全部DLしておいたほうが
後々、楽です。もし全ダウンロードしていない場合は
コンパネ、プログラムと機能からVisualStudioを選択して
右クリックをすると変更という項目が出てくるので
クリックして後からダウンロードすることも可能です。
尚、パッケージ化する場合に必要な拡張項目があるので
全部の項目を落とすとエラーなどは出なくなります。
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
autoplay, bandicam-2016-12-06-07-01-52-207.mp4, C#プログラミング, preload, true, uploads, video width, Visual Studio, VisualStudio2015, wp-content, zip358.com, エラー, コンパネ, パッケージ, プログラム, 拡張項目, 無償版, 無料版,
クローラーするサービスの基礎。
2016.11.19
クローラーするサービスの基礎のソースを載せときます。殆どサイボウズ・ラボの人が書いたコードです。
このサンプルソースをそのまま貼り付けても一階層のリンクしか取得できません。
再帰処理の部分をコメントアウトしているからです。ちなみにコメントアウトを外してもメモリオーバーでおそらく
大体のサーバでエラーが出力されます。どうしたら良いのかといえば、DBに1階層目のリンクデータ、2階層目のリンクデータという様に保存する機能を施す。次にajaxで階層を受け渡しながら、再帰処理を行う。
再帰処理が終わる要素はそれ以上、下階層がないことを判断する。そのためには保存したデータを検索することが重要になる。=(イコール)
新規にデータを登録しているうちは、再帰処理を終わらせないようにすることが大事になる。
これの機能を加えることで巡回する事が可能になる。ここで注意しないといけないのが、外部リンクを保存しないことです。外部リンクまで保存していると巡回は永遠に終わらないでしょう・・・。
トイウコトデ
ほぼ??コピペソースを貼っときます。
<?php
echo json_encode($obj);
exit;
function get_linkarray($link)
{
$context = stream_context_create(array("http" => array("method" => "GET", "header" => "User-Agent: simplecrawler.library.php 0.0.1")));
$resultR = array();
$resultS = simplecrawler($context, $link, $link, parse_url($link));
foreach ($resultS as $k => $v) {
$resultR[] = $v;
}
return $resultR;
}
function simplecrawler($context, $link, $burl, $base, $linkArrayDat = array())
{
$linkArrayPre = crawler_link(crawler_page($link, $burl, $base, $context), $link, parse_url($link));
foreach ($linkArrayPre as $k => $v) {
if (!isset($linkArrayDat[$v])) {
$linkArrayDat[$v] = $v;
//$linkArrayDat = array_merge($linkArrayDat, simplecrawler($context, $v, $burl, $base, $linkArrayDat));
}
}
return $linkArrayDat;
}
function crawler_page($link, $burl, $base, $context)
{
if (strpos($link, $burl) === 0) {
$page = @file_get_contents($link, false, $context);
return $page === FALSE ? null : $page;
} else {
return null;
}
}
function crawler_link($page, $burl, $base)
{
$linkArray = array();
if ($page === null) {
return $linkArray;
}
preg_match_all("/[\s\n\t]+href\s?=\s?”(.*?)”/i", $page, $href);
for ($i = 0; $i < count($href[1]); $i++) {
$link = $href[1][$i];
if (preg_match("/^http(s)*\:\/\//", $link)) {
$result = $link;
} elseif (preg_match("/^\/.+$/", $link)) {
$result = $base["scheme"] . "://" . $base["host"] . $link;
} else {
// echo $base["path"] . “\n”;
$b = preg_split("/\//", dirname($base["path"]));
$t = preg_split("/\//", $link);
foreach ($t as $v) {
$l = $v === "." ? true : ($v === ".." ? array_pop($b) : array_push($b, $v));
}
$result = $base["scheme"] . "://" . $base["host"] . join("/", $b);
}
$linkArray[$result] = $result;
}
return $linkArray;
}
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
1, 2, ajax, db, アウト, イコール, うち, エラー, オーバー, クローラー, コード, ここ, こと, コメント, これ, サーバ, サービス, サイボウズ, サンプル, ソース, それ, ため, データ, トイウ, メモリ, ラボ, リンク, 一, 下, 事, 人, 保存, 再帰, 処理, 出力, 判断, 取得, 可能, 基礎, 外部, 大事, 大体, 巡回, 新規, 検索, 機能, 殆ど, 永遠, 注意, 登録, 要素, 部分, 重要, 階層,
コーディング:プログラムコードを書くこと。
2016.07.03
コーディング:プログラムコードを書くこと。
誰でもプログラムは書くことは出来るのだけど、出来の良いコードが書けるかどうかは、センスとかやる気にも値するし 経験もモノを言う。
例えば、文字を出力する場合、一括出力するのが 大体、シンプルだと言えるけど、前職で働いていた時見たコードの 中には、その時その時に出力する方法で書いた。
これが悪いかどうかと言えば悪くはない。
何故なら、別にエラーを吐き出しているわけでもないのだから悪いコードでもない。ただ、玄人から見れば素人よりな書き方だねと思われるだけ。
ただ、それだけの事だけど書いている本人に 基本的に指摘しないのだ。
その人がナンセンスとは思わない、むしろ、自分は指導しない上司はナンセンスだと思うわけです。
基本的に自分の部下だったら、技は基本的に惜しみなく教えてあげるタイプです。
ちなみにプログラムの勘所は、全体を処理を理解して処理を分割する考え方が必要になります。
それが出来るか出来ないかは、少しセンスが必要になったり、経験が必要になったりします。
[画像提供元]フリー写真素材ぱくたそ
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
エラー, コーディング, コード, センス, たそ, プログラム, プログラムコード, 一括出力, 上司, 全体, 処理, 前職, 勘所, 少しセンス, 悪いコード, 技, 本人, 玄人, 素人, 部下,
誰もSEOについて語らなくなってきている。
2016.06.12
誰もSEOについて語らなくなってきている。
SEOの攻略法って基本的にソーシャルメディア以外なし。
もうひとつ付け加えるとするならば、今までのアクセス数はそのサイトの信用となりうるという事です。
ドメインも買えないならば、日々、記事を書き続けることにしか、チャンスはないとも言える。
自分が出した、いまの結論です。
簡単にいえば、サイトの構造というのは意味をなさない。javascriptのエラーが吐かれていないかとかは、注意はした
方が良いですが・・・。
※昔からあるサイト構造をガラッと変えるのはリスクを伴います。
YOUTUBEなどを貼り付けてたら、JSエラーを吐き出したりしますが、さほど、影響はないに等しいです。
そんな事より、サイトの中身を充実させたほうが今は良いんですね。どこから訪問者が来たか、検索キーワードが
何なのか分からなくなってきている中で、どうすればアクセス数が増えるかなど分かりづらくなっています。
アクセス数は百の壁、千の壁、1万の壁という様に壁があります。凡人が超えれる壁は千の壁までだと自分は
思っています。日に1000人のアクセス数を出すことは不可能ではないです。ただ、1万の壁を超えるのは難しい。
その壁を超えるには広告やメディア戦略が必須となります。なのでお金もかけないでアクセス数をUPするには
ソーシャルメディアを活用することをオススメします。
[余談]
なぜ、昔からのサイト構造を一気に変更するのにはリスクを伴うのか?
答えは簡単で、クローラーが今まで見に行っていたURLが急に見えなくなると、このサイトは移転した可能性があるという判断をするため、急激に検索順位が下がっていく可能性あります。
検索アルゴリズムは移転という可能性を排除しないからです。
なので文言や旧ファイルは残しておく事が一般的です。
?
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
1, javascript, JS, SEO, youtube, アクセス, いま, エラー, キーワード, こと, サイト, ソーシャル, チャンス, どこ, ドメイン, メディア, もうひとつ, リスク, 万, 中, 中身, 事, 今, 何, 信用, 充実, 千, 壁, 影響, 意味, 攻略, 方, 日々, 昔, 検索, 構造, 注意, 百, 簡単, 結論, 自分, 記事, 訪問者, 誰,
WEBセキュリティと人為的なバグ。
2015.12.06
先日、人為的なミス(コードミス)のため、何度かテスト用のファイルなどが
WEB上から吹っ飛んで消えちゃったっていう事象が発生した。
原因は自分のコードの書き方のミスだった・・・。
それに気付くまで謎の事象だった。
最初に自分がまず疑ったのがハッキングだったが
サーバ会社からの返答は侵入した痕跡がないとの事で
疑わしきは実行ファイルということだった。
結果、調べていくと実行ファイルのメソッドに
値が入っていなかったため一部のディレクトリを
消して良い所を全部ディレクトリが一括で消していた。
書いたのは自分です。
大体、バグっていうのは書いた本人は気づきにくいもの。
特にエラーがないバグはテストを行った時に出現したりして
そのバグ取りに大体、必死になることが多い。
結局、原因を見つけたのは社長だったという話ですが
今回のことで自社のサーバを持つことになったのが
何とも言えないのだ。
今回の原因は過信と浅いネットワーク知識やWEB知識が
問題になったんだろうと思う。そういう事もあって
WEBセキュリティ教室という本を購入したが・・・
これが今までのsqlインジェクションとかよりも深い内容の
攻撃手法が書かれていて正直、いまの自分には
半分程度の理解しか得れなかった。
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
sqlインジェクション, Webセキュリティ教室, エラー, サーバ, サーバ会社, バグ, バグ取り, メソッド, 事象, 何度かテスト用, 全部ディレクトリ, 原因, 実行ファイル, 徳丸浩, 書き方, 浅いネットワーク知識, 痕跡, 過信,
httpingのインストール方法。centOS7
2015.07.26
httpingのインストール方法ですけど。wgetを使用してダウンロードしインストールするだけでOKです。しかし、gccがインストールされていないとエラーが出てしまいますのでgccもインストールしないといけないです。まず、gccをインストールします。その後、httpingをインストールするとすんなりとインストール出来るはずです。
yum -y install gcc
wget http://www.vanheusden.com/httping/httping-2.3.4.tgz
tar xfz httping-2.3.4.tgz
cd httping-2.3.4
make install
httping https://www.google.co.jp
ちなみにwgetがインストールされていないとダウンロードすることが出来ませんのでこちらもインストールする事もお忘れなく。
yum -y install wget
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
-y, 2.3.4, 7, cd, centOS, com, gcc, http, httping, install, Make, OK, tar, tgz, vanheusden, wget, www, xfz, yum, インストール, エラー, こちら, こと, ダウンロード, パス, 事, 使用, 後, 方法,
WordPressを別のURLへ移行する方法。
2015.07.08
WordPressを別のURLへ移行する方法ですが、いろいろと巷では、WordPressのPHPを修正すれば良いよとか記載していますが、本当はこれだけで良いはずです。WordPressが保管されているデータベースのデータの任意のURLを全て置換するという方法です。そうすればエラーなどもなく移行することが可能ですが、ただ、データが多いと結構、大変な作業です。全てのURLを直さなくて良い場合などは・・・大変な作業になることは間違いないです。ほぼ、人力ですね。一括置換で良さそうな場合はすごく手間がかかりません。下記の方法がよく見かける方法ですが・・・おそらく上手くいきませんという場合が多いです。
WordPressのindex.phpの中の
require(‘./wp-blog-header.php’);
を
require(‘./wordpress/wp-blog-header.php’);に変更。
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
index.php, require, url, WordPress, wp-blog-header.php', エラー, これだけ, データベース, 一括置換, 下記, 人力, 作業, 全て, 変更, 巷, 手間, 方法, 良いはず, 良い場合,