タグ

phpに関するtailtameのブックマーク (207)

  • PHP: Noticeエラーを回避してarrayから値を取得するいくつかの例

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    PHP: Noticeエラーを回避してarrayから値を取得するいくつかの例
  • 【さくらのレンタルサーバ】PHP提供ポリシー変更のお知らせ | さくらインターネット

    お客さま各位 平素よりさくらインターネットに格別のご愛顧を賜り、誠にありがとうございます。 さくらのレンタルサーバにおけるPHP提供ポリシーを、2023年9月14日(木)より変更いたします。 詳細は下記をご参照ください。 さくらインターネットでは、今後もよりよいサービスの提供が行えますよう、精一杯努めてまいります。引き続き変わらぬご愛顧を賜りますようお願い申し上げます。 PHP提供ポリシーの変更内容 以下の2点について提供ポリシーを変更いたします。 1.PHPセキュリティサポート終了後について 変更前 該当バージョンの提供を終了 変更後 該当バージョンの提供を継続 ※提供を終了する例外対応がございますので、ご注意ください。 2.マイナーバージョンアップ時について 変更前 通知から一定期間後に自動でバージョンアップ 変更後 お客さま自身でバージョンアップ これまでは自動でバージョンアップを

    【さくらのレンタルサーバ】PHP提供ポリシー変更のお知らせ | さくらインターネット
    tailtame
    tailtame 2023/09/15
    対応不可で真っ白サイトが増え…るのか🤔 ところでPHP8.2まだー😂
  • PHP: PHP 8.2.0 Release Announcement

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: PHP 8.2.0 Release Announcement
    tailtame
    tailtame 2023/09/15
  • 徳丸 浩 on Twitter: "マイクロ秒+乱数を使う PHPのuniqidという関数がありますが、セキュリティ筋からは危険な関数筆頭くらいに扱われていますし、マニュアルにも「この関数は、戻り値の一意性を保証するものではありません」と明記されています https://t.co/8oqK4XKkM6"

    tailtame
    tailtame 2023/05/12
    話題の住民票から。単純なrandやりたい時に見かけたっけな…。
  • PHPで画像色抽出 - Qiita

    社内の方も社外の方もこんばんは。2015年度新卒入社したmekkooです。 Advent Calendarの季節です。街には色があふれていますね。 僕はひたすら画面を見つめているのですが、最近感動したUIがあります。 iTunesに最近搭載された... 美しい。かっこいい! 没頭できる。アルバムアートをちゃんと設定しようという気になる。 PHPで再現して、メディアに取り入れてみたい… PHPでClassを作ってみよう! 画像色抽出どうすればいいか考えた 画像をオブジェクトとして読み込んで phpなら、imagecreatefrom*() 関数 左上から右下へ、ピクセルを走査していく? 大きな画像の場合、10px毎とかでスキップしながらでもいいかも 最終的に、カラーコードの平均を取る? 実際にやってみた <?php class SenseOfColor { private $filepath

    PHPで画像色抽出 - Qiita
  • PHP「fgetcsvはsetlocaleしないと日本語が読めない」は迷信なのか? - Qiita

    見つけられた範囲で読めないデータを提示している情報源は以上の3つだけだったが、データの提示なしにsetlocaleを使うことを推奨する記事はかなりの数があった。 当にfgetcsvはsetlocaleしないとだめなのか? 手元のPHP環境(PHP 7.1)ではsetlocaleをしなくてもfgetcsvで問題なくデータが読み込めていたので、 fgetcsvはsetlocaleしないと読めないデータがあるというのは当なのかという疑問が生まれた。 一応、macOS上のPHPだけでなく、Alpine Linux(localeがない)やUbuntu(localeがC)でも試したが再現しなかった。 また、SJISのCSVでも再現しなかった。 仮説: PHPのあるバージョンからロケール問題がなくなった fgetcsvでロケールの調整が必要とする記事がPHP5時代のものが多かったので、もしかするとP

    PHP「fgetcsvはsetlocaleしないと日本語が読めない」は迷信なのか? - Qiita
    tailtame
    tailtame 2023/04/05
    PHP5までか。これがないとエラーってたので。ついでにShift_JISをUTF-8にしたから探したー「setlocale(LC_ALL, 'ja_JP.sjis');」と書いてたw
  • [PHP] 配列・連想配列の初期化、結合、追加 - Qiita

    1-2. 初期化&代入 1-2-1. 1次元の配列 PHP においては「添字配列(キーが非負整数である配列)」と「連想配列(キーが文字列である配列)」の間に違いはなく、配列型は 1 つだけで、 同じ配列で整数のインデックスと文字列のインデックスを同時に使えます。 添字配列の例

    [PHP] 配列・連想配列の初期化、結合、追加 - Qiita
    tailtame
    tailtame 2021/01/30
  • phpの処理を高速に! | PRESSMAN*TechPRESSMAN*Tech

    インクリメントとデクリメントは前置//遅い $i++; $i--; //早い ++$i; --$i; 約1.24倍の高速化 型変換は関数よりキャストする//遅い $tmp = intval($val); //早い $tmp = (int)$val; 約2.1倍の高速化 数字(not数値)を計算で使うなら事前にキャストする//遅い $val = '1'; $tmp = 0; $tmp += $val; //早い $val = '1'; $val = (int)$val; $tmp = 0; $tmp += $val; 約1.7倍の高速化 グローバル変数より定数を使う//遅い $GLOBALS[ 'MIZUKI' ] = 7; $tmp = ''; $tmp = $GLOBALS[ 'MIZUKI' ]; //早い define( 'hoge', 7 ); $tmp = ''; $tmp =

    tailtame
    tailtame 2021/01/30
  • 2020年11月お絵かき掲示板にPHP8がおそいかかる|さとぴあ

    お絵かき掲示板POTI-board改二は、PHP5.5からPHP8.xで動作するPHPスクリプトをめざして開発をすすめています。 PHP8は2020年11月にリリースされました。 PHP8でもPOTI-board改二は動作しますか? 重大な問題が2点みつかりました。 その2点の問題を修正した、PHP8対応版を2021年1月2日に公開しました。 PHP8対応版へのアップデートを私達はPHP8でも動くように注意深くお絵かき掲示板の開発をすすめてきました。 しかし…。 1つ目の問題。 お絵かきした画像が投稿できなくなる問題がみつかりました。 お絵かき掲示板の動画保存機能が動作している時には発生しないエラーだったため発見が遅れました。 画像から続きを描いたり、アニメーション記録のチェックを外して描くと「画像がありません」というエラーになります。 2つ目の問題。 投稿ボタンを押したあとのHTMLファ

    2020年11月お絵かき掲示板にPHP8がおそいかかる|さとぴあ
    tailtame
    tailtame 2021/01/18
  • 10年戦士のレガシーPHPを改善するためにやってきたこと - Qiita

    ドワンゴで、ニコニコ動画とプレミアム課金の開発をしている @yoshikyoto です。 最近では、総合TOPのリニューアルや、↓の記事で書かれているプレミアム課金の移行をやっていました。 ニコニコで12年運用した決済システムを移行する上で必要だったこと レガシーなPHPを改善してきた知見 ニコニコは古くからあるサービスで、レガシーなコードも多く存在しています。 僕は新卒でニコニコ動画に配属され、5年間ずっと PHP を触ってきました。その中で、多くの新機能の開発、古いコードのリファクタリング、いろいろやってきました。その知見をまとめます。 Composer, Laravel (フレームワーク)の導入 PHP を使っていて Composer を導入していないシステムは珍しい思いますが、10年もののシステムには、Composer が導入されていない場合もあります。導入されていないなら導入しま

    10年戦士のレガシーPHPを改善するためにやってきたこと - Qiita
    tailtame
    tailtame 2020/12/14
    ドワンゴのアドベントカレンダー。地道に変更されていくのぅ(`・ω・´)
  • 巨大なSJISのCSVファイルをfgetcsv関数で処理する - hnwの日記

    さて、前回記事「PHPでメモリ上に一時ファイルを作る」では、file_get_contents関数でCSVファイル全体を取得して文字エンコーディングの変換を行い、変換結果に対してfgetcsv関数を利用しました。しかし、CSVファイルが巨大な場合にはfile_get_contentsを使うとメモリ上限に引っかかってPHPが停止してしまいます。 もちろん、UTF-8CSVファイルに対してfgetcsvを利用するのであれば、どんな大きなCSVファイルだろうと処理することが可能です。なぜなら、fgetcsvはファイルを1行単位で読み込む関数ですから、1行分のメモリ消費だけでファイル全体を読み込み続けられるからです(正確にはストリーム上のデータはバッファリングされるので、バッファサイズ分のメモリは消費しますが)。 それでは、巨大なSJISのCSVファイルをfgetcsvで処理したい場合はどうすれ

    巨大なSJISのCSVファイルをfgetcsv関数で処理する - hnwの日記
    tailtame
    tailtame 2020/11/10
  • PHP: fgetcsvでもSJISのCSVをUTF-8として《安全》に読む方法(ストリームフィルタ使用) - Qiita

    fgetcsvでShift-JIS文字コードのCSVを読むと、文字列がShift-JISのままの配列が返ってくるため、UTF-8を基的な文字コードに据えたシステムでただ不便というだけにとどまらず、SJISのCSVをfgetcsvで直接読み取るのは「5C問題」のため危険である。 稿では、ストリームフィルタを使ったSJIS CSVの安全な読み込み方法を紹介する。なお、稿で作るストリームフィルタの完成形はGitHubで公開する。 5C問題とは よく見かける次のような実装は5C問題のため、データによっては読めないものが出てくる危険性がある: $fp = fopen('sjis.csv', 'r'); while ($row = fgetcsv($fp) !== false) { // fgetcsvで読み取った後に、文字コードを変換している mb_convert_variables('UTF

    PHP: fgetcsvでもSJISのCSVをUTF-8として《安全》に読む方法(ストリームフィルタ使用) - Qiita
    tailtame
    tailtame 2020/11/10
  • PHPでSJISのデカイCSVデータを扱った時に困ったこと - Qiita

    第39回関西PHP勉強会 のスライドです。 (おことわり) スライド上では全て文字エンコーディングのことを「文字コード」と表記していますので、ご了承ください。 やりたいこと 郵便局が提供している郵便番号一覧データをDBに入れる 文字コードが「SJIS」 文字コードの変換が必要 データ件数が約12万件と大きい ファイル操作に工夫が必要 1つめの困りごと:文字コードが「SJIS」 【SJIS(Shift_JIS)】 日語を含む文字列を表現するために用いられる文字コードの一つ SJISとSJIS-winがあり、SJIS-winの方が対応文字数が多い(①②、はしご高など) ガラケーなどの用いられている 扱いにくい... [参考] PHPの文字コードではSJISじゃなくてSJIS-win、EUC-JPじゃなくてeucJP-winを 【UTF-8】 表示範囲が広く、どの国の文字も文字化けしない 世界

    PHPでSJISのデカイCSVデータを扱った時に困ったこと - Qiita
    tailtame
    tailtame 2020/11/10
    毎度変換より、たまに書き換えるのが楽でいいかのー。
  • APIなどにfile_get_contents()を使うのはオススメしない理由と代替案

    file_get_contents() はファイルパスを指定してデータを取得するだけではなく URLを指定すればそのURLの情報を手軽にとれる関数ですが 対API等に使うと色々とハマるポイントが多いので、それを簡単に解説したものです。 ※このページ向け に書いていたものですが、コード量が多いので分割しました。 問題点 file_get_contents() は ヘッダ情報の保持ルールやタイムアウト処理に癖があるため 返却されるステータスコードや、タイムアウト時に再リクエストなどを行うような 対APIの処理では、それらを知らないと想定していない事態に陥る。 コード例と解説 以下の要件でfunctionを書くとします。 jsonが返ってくるAPIにアクセスして、jsonをarray化する。 タイムアウトは3秒とし、そうなった場合は空の配列が返ってくる。 ステータスコードが200以外で返ってきた

    APIなどにfile_get_contents()を使うのはオススメしない理由と代替案
    tailtame
    tailtame 2020/08/04
  • PHPで出来てしまうが控えたほうががいい書き方 - Qiita

    正常系は上手く動くし問題ない!と思ってもケースによっては危なかったり あんまりよくない書き方ってあると思います。 そういうような控えたほうががいいような書き方をケース別にまとめたものです。 まばらには書かれているんですが、一つの場所にはまとまってないのでメモがてら。 ==での比較 違う言語から戻ってくると間違って書いてしまいがちな判定。 問題点 == の場合は 型の相互変換をかけてから比較するので 意図しない比較が行われる可能性がある PHP: 型の相互変換 - Manual コード例と解説 以下のようなコードがあるとします。

    PHPで出来てしまうが控えたほうががいい書き方 - Qiita
    tailtame
    tailtame 2020/08/04
  • PHP比較演算子「==」と「===」の違いについて - Qiita

    比較演算子について 比較演算子を使用する際は==ではなく厳密な比較演算子である===の方が良いと聞きますが、どう違うのか気になって調べたのでそのことを書いていこうと思います。 比較演算子==について PHPマニュアル(https://www.php.net/manual/ja/language.operators.comparison.php )を見ると、こんな定義でした。 演算子 内容

    PHP比較演算子「==」と「===」の違いについて - Qiita
    tailtame
    tailtame 2020/08/04
    ==のところ書き換えるか。たいして影響ないと言えばないのだけど…。かなり経つけど、==とかぐぐれるようになって便利よね
  • 【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita

    結果は順にtrue、true、falseです。 これがPHP7までの非厳密な比較(等価)演算子だったわけですが、まあおかしいよねってことで、この挙動がPHP8.0で変更になることになりました。 よもや今さら基中の基である比較演算子の動作を弄ってくるとは思わなかったぞ。 以下はSaner string to number comparisonsの日語訳です。 PHP RFC: Saner string to number comparisons Introduction ==やその他の非厳密な比較演算子を用いた文字列と数値の比較は、現在は、文字列を数値にキャストし、その後整数か浮動小数の比較を行っています。 この結果、多数の不可解な結果が得られますが、中でも注目すべきは0 == "foobar"がtrueになることです。 このRFCでは、文字列が実際に数値型文字列である場合にのみ数値型

    【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita
    tailtame
    tailtame 2020/08/03
    『42 == "42foo"  true』どうして…Perl互換なのか~。わかりやすくなるからいいかも…と趣味PHPer(`・ω・´) 確かにphp5→php7の以降も面倒だからそれ乗り越えてたら余裕か。
  • Apocripha.net [PHP] fopen() "r+" "w+" どちらも「読み込み/書き込み共用です」 どない違うねんという話

    テキストファイルに書かれた数値を読み込んで1プラスして再書き込み。 カウンタとか、なにかのユニークな数値を管理するためによくやる手法かと思います。 で、同時アクセスされたときに読み書きの間で処理が前後すると同じ値が採番されてしまったりするので、だいたいは下記のような手順で進みますよね。(詳細なソースは省きます) fopen() でファイルオープン ↓ flock() で排他ロック ↓ fread() で読み込み ↓ 加算した値を計算 ↓ rewind() とか fseek() とかでファイルポインタを先頭に移動 ↓ fwrite() とかで書き込み ↓ flock() でロック解除 ↓ fclose() でファイルを閉じる ありふれた処理ではあるのですが、そういった処理はたいていDB処理することが最近多かったので、はて fopen() では読み書き両方したいときにはどんな感じで読み込めばよ

    tailtame
    tailtame 2020/06/19
    『「fopen() する前のファイルの内容を読んで書き戻す」という今回のような用途には "r+" を使わなければなりません。』
  • PHPでの文字数カウントには strlen が絶対NGな理由…正しい方法 | PisukeCode - Web開発まとめ

    PHPをある程度使ってる人なら常識中の常識だと思うんですが・・・ 文字数カウントには絶対に strlen 関数は使っちゃダメです。 でも僕自身、PHP初心者の頃は strlen を使ってしまってたことがあります。 そこで過去の恥ずかしい教訓も込めて、 PHPで strlen 関数を使うのが絶対NGな理由と正しいやり方を解説! なんで文字数カウントには strlen を使っちゃダメなの? PHPに限らず他言語にも strlen  っていう関数はあります。 この strlen  っていう名前が当に紛らわしい・・・ 何も予備知識が無いと、 「str、len、、、そうか、文字列(str)の長さ(len)を測る関数か!」 みたいに思っても全くおかしくありません。 でもこの strlen   関数、公式リファレンスを見ると次のように説明されてます。 strlen ( string $string )

    PHPでの文字数カウントには strlen が絶対NGな理由…正しい方法 | PisukeCode - Web開発まとめ
    tailtame
    tailtame 2020/05/20
  • PHP: NumberFormatter - Manual

    はじめに プログラムで数値を保存したり操作したりする際には、 ロケールに依存しないバイナリ表現を使用します。 数値を表示するときに、ロケールにあわせた文字列形式に変換します。 たとえば 12345.67 という数値の表記はアメリカでは "12,345.67"、 フランスでは "12 345,67"、そしてドイツでは "12.345,67" となります。 NumberFormatter クラスのメソッドを実行すると、 数値や通貨、パーセンテージなどの値をロケールに応じた形式にフォーマットすることができます。 NumberFormatter はロケールを考慮した処理を行うので、 ロケールごとに別の NumberFormatter を用意する必要があります。 NumberFormatter のメソッドは、浮動小数点数値のような数値を ロケールにあわせた文字列に変換します。 通貨の場合は、通貨用の

    tailtame
    tailtame 2020/01/30
    『たとえば 12345.67 という数値の表記はアメリカでは "12,345.67"、 フランスでは "12 345,67"、そしてドイツでは "12.345,67" となります。』え、そんなにややこしいの