via nonull: Zazzle.com Store: http://ift.tt/2csyHLE
デザイン
ホームページ、ウェブサイト制作、CMS構築を行う!nullサイト別室です。本サイトに載らない情報、内外的に載せきれない詳しい情報などを掲載しています。
2016年9月15日木曜日
2016年9月14日水曜日
2015年10月20日火曜日
PHPの正規表現で文字列を抽出
ある法則で書かれた文章をphpを使って文字列を抽出する方法です。(備忘録)
デザイナーであるため良く忘れますw
置換にはpreg_replaceを使いますが、これでも抽出はできます。この方法はまた説明します。
ここではpreg_matchでターゲットとなる文字列を正規表現で抽出する方法です。
$string = '<img src="http://nonull.jp/img/001.png" />';
preg_match('/src="([^\"]+)"/u',$string, $match);
$var = $match[1];
preg_match('/src="([^\"]+)"/u',$string, $match);
$var = $match[1];
画像のパスを取得したい場合の記述です。
$varにはhttp://nonull.jp/img/001.pngが代入されます。
また、ページ全体などある規則で記述されている内容を抽出したい時もあると思います。
そのようなときはpreg_match_all関数を使います。
$string = "<div>1</div><div>2</div>";
preg_match_all("/<div>(.*?)<\/div>/", $string, $matches);
foreach($matches[1] as $var) {
echo $var;
}
preg_match_all("/<div>(.*?)<\/div>/", $string, $matches);
foreach($matches[1] as $var) {
echo $var;
}
この場合$varに12と代入されます。
通常<div>は単体で使われていません。
<div>が入れ子になっていたり、class属性が入っていたりもしますので
二行目の正規表現を少し変えたりする必要があります。
三行目の$matchesは$matches[0]と変えると
$varには<div>1</div><div>2</div>が代入されます。
要は[0]の場合は/~/のマッチした情報
[1]の場合は(~)のマッチした情報となります。
正規表現はわかっておくとperlやjavascriptなどにも使われていますので
理解しておくといいかもしれません。
デザイナーにとってはとっつき辛いですがねw
ホームページ制作 東京!null
2015年10月15日木曜日
Coreserverで.htaccessを使ってmod_rewriteを書く【解決】
Coreserver(コアサーバー)はバリュードメインが運営しているレンタルサーバーです。 2014年にサーバー全体に大幅なバージョンアップがありました。
安く運用できるため、未だに使ってますが仕様が色々と特殊です。
mod_rewriteを使おうと思いかなり経ってしまい色々調べましたが、
Wordpressを使った場合という前提の内容が多く、どうもこちらの目的と違います。
Wordpress特化でなく、もっと汎用的に使いたいと思っていたからです。
通常のサーバーはウェブルート(public_htmlなど)に.htaccessというテキストファイルを作成し
そのファイルをアップロードすればいいのですが、なぜか、サーバーエラー 500が起こったり
動いているように見えて、not foundになったり試行錯誤。
ようやく解決しました!
要はサーバー仕様のせいですw
.htaccessは以下のように記載します。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
### Straight Search
RewriteRule (.*)$ /mt/mt-search.cgi?IncludeBlogs=1&search=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
### Straight Search
RewriteRule (.*)$ /mt/mt-search.cgi?IncludeBlogs=1&search=$1 [QSA,L]
1~3行目は割愛します。沢山検索できます。
4行目の#はコメントアウトするときに記載します。
一番重要となる5行目のRewriteRuleのところですが、括弧内の文字列がURL内にあるとき、$1に置換しますという意味です。
movabletypeを使っている方はよく分かると思いますが、文字列検索の一文です。
上記の.htaccessを新しく作ったディレクトリにアップロードします。(超重要)
例えば、keywordsというディレクトリにアップロードしたときは
/keywords/webdesign というURLが /mt/mt-search.cgi?IncludeBlogs=1&search=webdesign
になります。
なぜ、こんな事で長い期間頓挫してしまってたんだろうと自己嫌悪ぎみw
ホームページ制作 東京!null
2015年9月19日土曜日
検索結果を爆速にする方法【MT3系】
今個人的に使用しているMT3(Movabletype3)の検索結果が異常に遅いのを
しばらく放置したまま時間が経ってしまいました。
現在エントリー数がかなり多くなってしまったサイトを運用中のため
多分、閲覧者が検索をする機会が多くなっており
検索結果が遅いために閲覧者を逃がしている可能性があるのではと思ったためです。
サイト離脱を極力抑えるために
検索結果テンプレートをいじることにしました。
変更方法は2つ考えられます。
①ページ送り(ページ分割)して1ページずつのロードを早くする
②キャッシュ機能を使い、検索結果の内容をあらかじめサーバーに保存させておく
結論は②でいくこととなりました。
①も試してみたのですが、ページ送りをしても、結局検索結果を全部読み込む事となり
待機時間が長くなってしまいます。
環境変数で処理もしてみて、早く読み込む事ができましたが
ページ送りが機能しなくなってしまいます。①の方法は八方塞がりです。
②のキャッシュ機能の方法は以下の通りです。
1.キャッシュ機能を実装するプラグインのインストール
SearchResultsCache プラグインをダウンロードます。(リンク先のページ下、MT(OS)4.1用)
そのファイルを解凍してMT/pluginsにインストールします。
上記リンク先のCpanモジュールを3つをmt/extlibにインストールします。
・Cache は解凍してlib内にあるファイル・フォルダをmt/extlibにインストールします。
・File::NFSLock も解凍してlib内にあるFileフォルダをフォルダごとmt/extlibにインストールします。
・Date::Parse も同じく解凍してlib内のDate、Timeフォルダごとをmt/extlibにインストールします。
(上記3つのファイルはtar.gz圧縮ファイルです。tar.gz対応解凍ソフトを使って解凍してください。私は7-Zipを使用してます。 )
2.検索結果テンプレートの変更
テンプレートの文頭に、
<MTKeyCachedKey><$MTSearchString$></MTKeyCachedKey>
と
<MTKeyCachedValue>
検索結果テンプレート前項
</MTKeyCachedValue>
というように検索結果構文を挟むように記述します。
参考はこちらをご確認ください。
最初にキーワード検索を使った時は通常の検索時間が必要になりますが、
他者が同様のキーワードで検索した時はキャッシュ機能が働いているため
通常のページのような速さで読み込んでくれます。
ホームページ制作 東京!null
2015年9月17日木曜日
HTML版 twitter、facebook、google+ ボタン
headタグに何も入れなくていい書き方のため、比較的楽に記述ができます。
例としてtwitter、facebook、google+の記述方法を記載します。
Twitter いいね
自分のタイムラインに表示されます。
<a href="https://twitter.com/share" class="twitter-share-button" data-url="①" data-lang="②" data-related="anywhereTheJavascriptAPI" data-count="③">④</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
①URLをhttpから入力②ja(日本語)、en(英語)
③ボタンの形 左から vertical、horizontal、none
④適切な文言を入力 (通常「ツイート」など)
Facebook いいね
自分のタイムラインには表示されず、右側のリアルタイムフィードに表示されます。
また友達の中で関連性が高い人にフィードされます(2015/09時点)
シェアボタンの場合は以下の方法では不可能です。
<iframe src="//www.facebook.com/plugins/like.php?href=①URL&send=false&layout=②&width=③&show_faces=false&action=like&colorscheme=light&font&height=④&appId=⑤" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:③px; height:④px;" allowTransparency="true"></iframe>
①URLをhttpから入力 ※URLはURLエンコード
エンコードはここなどを参照ください。
②ボタンの形 左から box_count、button_count、button
③横サイズを数字(半角)のみで入力
④縦サイズを数字(半角)のみで入力
⑤appidはfacebook developerから取得し、15桁の半角数字を入力
google+ ボタン
G+された内容は自分のタイムラインに表示されます。
<g:plusone href="①" size="②"></g:plusone>
①URLをhttpから入力②ボタンの形 左から tall、standard、medium
※サイトやブログサービスの仕様により適切に表示されない可能性がありますが
レンタルサーバーでのウェブサイトでは、ほとんど表示されています。
●参考サイト
SNSボタンの設置とカスタマイズ方法
ホームページ制作 東京!null
2015年9月15日火曜日
ぽてぽてプードル(ぽてぷ)のLINEスタンプ

丁寧語ベースですので、先輩、上司、営業系、仕事のお客さん、姑舅さんなどにお使いください。
13スタンプがマルチリンガル対応になっています。
言語は、英語、フランス語、タイ語、インドネシア語、韓国語、中国語(北京・台湾)で、英語&日本語または日本語のみもあります。
⇒ http://ift.tt/1UR3C6e
このスタンプは2015年09月時点のものです。
via !null ノーヌル http://ift.tt/1KjiAqs
登録:
コメント (Atom)



