ホーム / ハック / tcpdfでpdf化したときに日本語が文字化けする
![tcpdfでpdf化したときに日本語が文字化けする | クロジカ](https://cdn-ak-scissors.b.st-hatena.com/image/square/6c78d656e2b4e322e91d07dec39b7f3ec7d309d5/height=288;version=1;width=512/https%3A%2F%2Ftech.kurojica.com%2Fwp-content%2Fuploads%2F2023%2F04%2Fogfile.png)
【追記あり】 外部サイトのコードを読み取りたい時に、PHPでは file_get_contents() という関数が利用できる。 例えばこんな感じ。 $url = "http://yahoo.co.jp"; $html = file_get_contents($url); お手軽で便利なのだが、参照先のページの文字コードが意に沿わないものだと変換する必要が出てくる。 その時に利用できるのが mb_convert_encoding($html, $char_to, $char_from) という関数。 参照したページがJISで、それをUTF-8に変換したい場合、第2引数に「"UTF-8"」、第3引数に「"JIS"」と入れるだけ。 これも非常に簡単。 ただ、複数ページを参照する場合などに$char_from、つまり参照したいページの文字コードを動的に設定したいことがある。実はこの$char_f
まずは改めて各ファイルの役割から。 composer.lock:現在使用しているバンドルのバージョン等が管理されます。 composer.json:必要となるバンドルを記述します。 composer.pharで実行。 んで、composer install と composer updateですが、 composer install:composer.lockに書かれている各ライブラリをインストールする。 composer update:composer.jsonをもとに各ファイルを最新版にアップデートする。 ということでした。 ユースケースとしては 新しい環境ではじめにインストールするとき:composer install 何か新しいバンドルを追加したい:composer.jsonにかいてcomposer update 本番のライブラリを最新版にしたい:開発環境でcomposer upd
PHPは最近の他の言語とは違ってシングルスレッドなので、一回のリクエストで複数の処理を同時に実行したりといったことは通常はできません。 非同期処理はできず、常に上から順に処理を進めていきます。 どうしてもやりたいなら`php hoge.php &`などと別プロセスで動かすといった手段しかありませんでした。 http://d.hatena.ne.jp/milktea_cg7/20130529/1369821459 ところでなにやらpthreadsとかいうモジュールを見つけたので使ってみます。 http://www.php.net/manual/ja/book.pthreads.php LinuxであればPECLからインストールしましょう。 Windowsではバイナリが落ちてたので拾ってきます。 http://pecl.php.net/package/pthreads https://gith
id: 29 所有者: msakamoto-sf 作成日: 2005-07-10 23:28:13 カテゴリ: PHP Web [ Prev ] [ Next ] [ PHP ] 特にIE系でよく見られる「ページの期限切れ」画面。これを発生させないためにはどうすればよいのか、現在は少しGoogleで検索するだけで実に様々な対策方法が蓄積されている。だが、そもそも「ページの期限切れ」とはいったい何を示しているのか?いったいこの画面はユーザーに何を訴えているのだろうか? 今回はPHP言語に限定して、この現象を可能な範囲その原因を追及し、抜本的対策と巷間にあふれる対策方法の是非を検討する。最終的に必要となった知識はHTTPのRFC2616のキャッシュ機能およびPHPのext/session/session.cのソースコードとなった。 「ページの有効期限切れ」が発生するスクリプト・発生しないスクリ
PHP の inlude や require で他のファイルを相対パスを指定して読み込む場合があります。 特に最近は PHP でもオブジェクト指向な感じでガリガリプログラムを書くことが多いので、細かく class ファイルに分かれたりして、さらに、include, require を活用することになるかと思います。 で、そんな時に問題になりやすいのが、include しているファイルの中で、またさらに別のファイルを include するような場合です。 例えば、次のようなディレクトリ構成で、 www/ |-index.php | |-func/ | |-function.php | |-class/ |-class.php 次のような include を行っていたとします。 www/index.php ファイル <?php include("func/function.php"); ?>
2017/06/22 指定したディレクトリ内にある、全てのファイル名やファイルパスを取得します。まとめて読み込みたい場合などに便利です。 サンプルコード$dirに対象のディレクトリのパスを指定して下さい。 そのディレクトリ内のみを取得そのディレクトリにあるファイルのみを取得します。ディレクトリ内のディレクトリは無視されます。 <?php // ディレクトリのパス $dir = "/var/www/" ; if( is_dir( $dir ) && $handle = opendir( $dir ) ) { while( ($file = readdir($handle)) !== false ) { if( filetype( $path = $dir . $file ) == "file" ) { // $file: ファイル名 // $path: ファイルのパス } } }再帰的に取得
//エラー画像表示 header('Content-Type: image/png'); //readfile('img/err.png'); print base64_decode('iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAABGdBTUEAAK/INwWK6QAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIZSURBVHhe7dsxcptAGIbhn5wFucjkBMsJZPdp0+FSaty5TJcGSrtLmz7yCcwJMiki7rJZdjcxtjR4zIdUJO8zwxix8o55xUIjFz4wzPYu/8RMBBQRUERAEQFFBBQRUERAEQFFBBQRUERAEQFFBBQRUERAEQFFBBQ
<?PHP // 画像の新規作成 $image = imagecreatetruecolor(500, 300); // フォントサイズ $fsize = 50; // フォント角度 $fangle = 0; // フォントカラー $fcolor = imagecolorallocate($image, 255, 255, 255); // 使用フォント $fpath = "./ipagp.ttf"; // X座標マージン $margin = 10; // 文字出力 $textList = array("連邦の", "モビルスーツは", "化け物か"); for ($i = 0; $i < count($textList); $i++) { // 画像の出力位置を計算 $px = $margin; imagettftext($image, $fsize, $fangle, $px, 75
リファラ(referer)はあるページを開いたユーザーが、どのページから流入してきたかを知るための情報です。あるページへのリンク元のページと言うこともできます。 今回は、PHPでリファラを取得する方法を説明します。 $_SERVER変数からリファラを取得する サイト閲覧者のリファラは、PHPのスーパーグローバル変数$_SERVER['HTTP_REFERER']にあります。 以下では、parse_url関数を使ってリファラからドメイン名のみを取得するサンプルコードを紹介します。parse_url関数は、URL構成要素を分解して連想配列にして返す関数 サンプルコード $referer = $_SERVER['HTTP_REFERER']; $url = parse_url($referer); $host = $url['host']; echo $host;
罫線を引く処理をまとめておけば、それは罫線だけ印刷された印刷物の上にデータを印刷する処理をアプリ側で実装できます(AddPage の後に毎回出力)。そのためには、少なくとも四角形と直線だけ引ける必要があります。 Line メソッド 二つの座標と、罫線の属性を定義した配列で直線を引けます Line( $x1, $y1, $x2, $y2, array( "width" => 幅, "color" => array( 0, 0, 0 ) ) ); ※ array( 0, 0, 0 ) は黒 Rect メソッド 四角形(4つの直線)を作成できます。塗りつぶしもかねているので、以下の書式は塗りつぶしをしない書式です $line_style = array( "width" => 幅, "color" => array( 0, 0, 0 ) ); Rect( $x, $y, $w, $h, "D",
ある文字列が半角のみでできていること、 つまり全角文字が含まれていないこと、 を確認したいことがたまにある。 そのやり方としていろんな人がいろんなことを書いていて 正規表現を使うものが多いと思うんだけど、 こんなんでもいいんじゃないかな。 if (strlen($str) === mb_strlen($str)) { return true; } else { return false; } シングルバイト扱いでの長さとマルチバイト扱いでの長さが同じなら半角。 これに文字エンコーディングの指定や半角カナ、制御文字の扱いを含めたら こんな感じでしょうか。 半角カナを許可するなら $include_kana を true に。デフォルト値は false. 改行やタブなども許可するなら $include_controls を true に。デフォルト値は false. 入力文字列 $str の文
HTTP_Request2でhttp通信はできたけど、 接続先をhttpsにしただけでエラーが出た場合の対処方法のメモ。 Unable to connect to ssl://example.com:443. Error: stream_socket_client(): unable to connect to ssl://example.com:443 (Unknown error) stream_socket_client(): Failed to enable crypto stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify
PHPで画面が真っ白になってしまうことありませんか? また、エラーで Fatal error: Allowed memory size of xxxxx bytes exhausted (tried to allocate 16 bytes) in … と、表示されてしまって、対応する必要に迫られることもあります。 Fatal error: Allowed memory size の原因 PHPで大量データを扱っている場合、メモリー不足のエラーが発生します。 その時、このようなエラーが発生します。 解決としては、次の3つのどれかで対応が可能です。 どれか1つ対応すれば解決すると思います。 Fatal error: Allowed memory size の解決方法 その1 php.iniの設定を変更します。 直接php.iniの設定が変更できる場合は、変更します。 memory_limit
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く