ど素人から毛を生やす。<延>

PHP

wkhtmltopdfで明朝体フォントを指定したら、全く違うフォントで出力された話。

Web > PHP 2018年5月10日(最終更新:17日前)

どもです。

ウェブサイト上でPDFファイルを作成する手段はいくつかありますが、今回は「wkhtmltopdf」について。

こいつが既に導入されているサイトで、新たなPDF生成システムを作ることに。
サンプルが明朝体だったので、いつものノリで明朝のfont-familyを指定

HTML上での正常な反映を確認。さあPDF出力、ポン。

待て待ておい待て待て待て!!!

明朝体どころか、やたらファンシーでポップなフォント(vl-gothic-regular)にされてんじゃねーか!?

サーバーに游明朝が入ってなかったから、にしてはフォント無指定やserifのみのときと異なっているのが妙だ。
ちなみにserifのみのときは、こう。... 続きを読む »

Eclipseで勝手に変数の宣言元に跳ぶのをどうにかしたい。

Web > PHP 2018年3月14日(最終更新:2月前)

どもです。
Eclipseは開発のお供ですが、機能が多すぎるのも玉に瑕です。

この頃気になっていたのが、ソースのコピペをしようとした途端、変数の宣言元に意図せずジャンプしてしまう頻度が高いこと。
戻るのは簡単ですが、間違いなく不便ですし、ストレスが溜まります。

この機能、「宣言を開く」という名称だそうです。
変数の上で[Ctrl]キーを押すと、変数にハイパーリンク的なものがつきます。これをクリックすることで宣言元に移動するのですね。便利な機能です。

しかし[Ctrl]は多用するキーなので、他のショートカットを実行しようとして、誤ってリンクとなった変数をクリックしてしまうことが多い。

ちなみにこの「宣言を開く」。デフォルトで[F3]キーにもショートカットが設定されています

じゃあ[F3]でいいよ!! ... 続きを読む »

htmlspecialcharsを使用するときは「重ねがけ」に要注意

Web > PHP 2017年12月5日(最終更新:5月前)

どもです。

とある一覧を表示するとき、

+--------------------------------+-----------------------------+
| htmlspecialchars("category1")  | htmlspecialchars("value1")  |
+--------------------------------+-----------------------------+
| htmlspecialchars("category2")  | htmlspecialchars("value2")  |
+--------------------------------+-----------------------------+
... 続きを読む »

Utf-8では全角文字が3byteだけど、2byte扱いで切り取りたい。

Web > PHP 2017年9月15日(最終更新:8月前)

どもです。

CSV出力したり、他サイトとデータのやり取りをしたいとき、
Utf-8では全角文字が3byteですが、2byte扱いで切り取りたい場合があります。

そういうときの解決法。

$str = mb_convert_encoding($str, 'SJIS', 'UTF-8');
$str = mb_strcut($str, 0 , $byte, 
... 続きを読む »

[php]switch->caseの中で正規表現してみた

Web > PHP 2017年9月13日(最終更新:8月前)

どもです。

例えば様々な項目の中に「url1」から「url5」までがあるとして、
これをswitchで処理したい場合があったとします。

このとき、「urlX」は同じ処理にしたい。
その場合、こういう書き方になると思います。

switch($row){
	case name : name();  break;
	case image: image(); break;
	
... 続きを読む »

PHPの配列を任意の位置で分割するにはarray_splice()を使えば良かったのか

Web > PHP 2017年9月8日(最終更新:8月前)

どもです。

クラス直下の連想配列に、大量の連番な配列を加えなければならなくなり、
そんなモン手書きでやってられっかと配列の任意の場所に配列を加える方法を探しました。

ありました。
[Qiita]PHPで連想配列の任意の位置に要素を挿入・削除する

神かよ。

中身を読んでみたのですが、
ベース配列を挿入する位置の前後で分ける動作をどこで行っているのかがわからず、調べることに。

で、結論としてはarray_splice()がその主犯だったわけなのですが。

$array_base   = [ "A", "B", "C", 
... 続きを読む »

phpで改行を置換したいが「\n」と「\r\n」の違いに首を傾げた話。

Web > PHP 2017年7月5日(最終更新:2月前)

どもです。
phpで改行を置換することになり、ちょっと悩んだのでメモ。

置換等を行う際、改行処理は制御文字を用いて行う必要があります。

が、

どうにも改行用の制御文字には「\n」と「\r\n」の2種類があるらしい。

で、この違いは何ぞやと調べてみたところ、
stack overflow にとても分かり易い回答があったので引用します。

\nはLF文字(Line Feed)、\rはCR文字(Carriage Return)と呼ばれる制御文字です。
テキストの改行を表現する方法は、システムによって下記3パターンが存在します。その表現方法が使われている代表的なOSも併記しています。

\n(LF):Unix系OS全般、Mac OS

... 続きを読む »

phpにおける正規表現の超基本を学ぶ。

Web > PHP 2017年6月22日(最終更新:10月前)

どもです。

この頃、正規表現を扱うことが増えたので、ちょっとど素人のままではいられなくなってきた。
ので、まじめに勉強してみようと思った次第です。

正規表現の超基本ルール

( ・ิω・ิ) そもそも正規表現って何やねん。
( ◉◞౪◟◉) 一定の規則に従った文字列を、1つの文字列で表現する方法。

( ・ิω・ิ) なんで正規表現なんて使うん?
( ◉◞౪◟◉) ... 続きを読む »

PHPで関数がどこから実行されたか探る

Web > PHP 2017年6月13日(最終更新:11月前)

どもです。
昨日に引き続き、デバックするのに便利そうなPHPの小技。

頻繁にひっぱりだこな関数だと、
どこから呼び出されたのかソースから探るのは難しい。

ので、関数がどこから実行されたか探るコマンド。

$debug_backtrace_ = debug_backtrace();
foreach ($debug_backtrace_ as $debug_backtrace_one){
	print_r($debug_backtrace_one["file"]." : ".$debug_backtrace_one["line"]."<br>");
... 続きを読む »