タグ

phpに関するvespidのブックマーク (32)

  • invalid range in character class警告が出たら正規表現の文字クラスにあるハイフンを確認する

    2020/07/26PHP この投稿は最終更新日から1年以上経過しています 古いスクリプトを動かしたらこんな警告が出た。 Warning: preg_match(): Compilation failed: invalid range in character class at offset 33 in ~ 該当コードは if (!preg_match('|\Ahttps?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?\z|', $url)) { この箇所で、文字クラス[\w- ./?%&=]にあるハイフンがリテラルではなく範囲と見なされてしまっているようだ。調べてみると、PHP7.3で正規表現ライブラリがPCRE2へ移行したことによる影響だという。 今後、文字クラスでハイフンリテラルを表現したい場合には //エスケープする [\w\-.] //先頭に置く [-

    invalid range in character class警告が出たら正規表現の文字クラスにあるハイフンを確認する
    vespid
    vespid 2021/11/02
  • PHP5.6以上(PHP7含む)でShift_JIS、EUCのPHPファイルが文字化けする|PHP工房

    PHP5.6以上(PHP7含む)の場合、拡張子が.phpの場合で、文字コードがShift_JIS、またはEUC-JPの場合、PHPが絡んでいようがいまいが文字化けしてしまうようです。(要するにそのファイルにHTMLだけが記述されていたとしても) もちろんmetaタグのContent-Typeで「charset=shift_jis」などを指定していたとしてもだから余計に厄介。 おそらくデフォルトcharsetがUTF-8に変わったせいだろうか。それにしてもこれはちょっとひどいな。。 metaタグやファイルの文字コードが間違いなくても文字化けするのでハマる可能性が高いと思う。 (あえてheaderで書いていないケースも多いと思うので ※特にPHPを書いていない場合はそもそも不要だったし) 解決法としては、単純にheader関数で明示的に文字コードを指定すれば解決できた。 以下1行をソース上の一

    PHP5.6以上(PHP7含む)でShift_JIS、EUCのPHPファイルが文字化けする|PHP工房
    vespid
    vespid 2017/02/20
  • [PHP]XML-RPCを利用するためのライブラリ「The Incutio XML-RPC Library for PHP」

    [PHP]XML-RPCを利用するためのライブラリ「The Incutio XML-RPC Library for PHPはてなブックマーク件数取得APIを利用するためにXML-RPCPHPから利用できるライブラリを探していたところ、「The Incutio XML-RPC Library for PHP」というライブラリにたどり着きました。 このブログでも「はてなブックマークのAPIを使って、サイト全体に付けられたブックマークの総合計を取得する」でPEARのXML_RPC2をご紹介しました。XML_RPC2でも良かったのですが、PEARを導入するのが面倒だったため単品で利用できるライブラリを探しました。 この「The Incutio XML-RPC Library for PHP」は1ファイルのみで構成されており、include_pathの通った場所に置くだけで利用できます。このラ

    [PHP]XML-RPCを利用するためのライブラリ「The Incutio XML-RPC Library for PHP」
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
    vespid
    vespid 2013/06/27
    こんげなもん、無料で使える訳ねえっぺ!本当にできるっぺ?
  • PHPでURLに対するfacebookのいいね!数とtwitterのtweet数を取得する

    メモ。 特定のURL(ページ)に対するfacebookのいいね!数と、 twitterでのtweet数(つぶやかれた回数)をPHPで取得する方法。 <?php $source_url = urlencode('取得したいページのURL'); $get_facebook = 'http://api.facebook.com/restserver.php?method=links.getStats&urls=' . $source_url; $xml = file_get_contents($get_facebook); $xml = simplexml_load_string($xml); $likes = $xml->link_stat->like_count;//いいね!数。※シェア数ならshare_countで $get_twitter = 'http://urls.api.twitt

    PHPでURLに対するfacebookのいいね!数とtwitterのtweet数を取得する
  • MagpieRSSのキャッシュとConditional GETについて - F.Ko-Jiの「一秒後は未来」

    PHPRSSをパースするライブラリにMagpieRSSというものがあります。 もう開発が止まっていたりAtom対応が不十分だったりして決して使いやすいとは言えないのですが、昔作ったサービスで使い続けてたりするのでたまに使うことがあります。 さて、MagpieRSSには独自のキャッシュの仕組みがあって、 define('MAGPIE_CACHE_ON', true); define('MAGPIE_CACHE_AGE', 3600); のように定数を定義するとキャッシュが有効になります。この設定にしていると、3600秒経過するまではキャッシュを利用し、HTTPリクエストをおこないません。 3600秒を経過後は、もしキャッシュしたRSSに Etag と last-modified がセットされていれば、Conditional GET(条件付きGET)をおこなってくれます。 キャッシュを無効に

    MagpieRSSのキャッシュとConditional GETについて - F.Ko-Jiの「一秒後は未来」
    vespid
    vespid 2012/10/14
  • class内でpreg_replace_callbackを使う » へっぽこ開発室

    Class内でpreg_replace_callbackを使うのにとっても手こずったのでメモ。 phpマニュアル(http://php.net/manual/ja/function.preg-replace-callback.php)によれば以下のようです。 <?php class myClass{ public function parsetext($text){ // parses text and sets literals A - C to lower case // this works return preg_replace_callback('|([a-c])|i', 'myClass::preg_tolower', $text); } public function parsefail($text){ // parses text and sets literals A

    vespid
    vespid 2012/08/25
  • preg_replaceによるコード実行 - T.Teradaの日記

    最近少し調べていたのが、PHPの任意コード実行系の脆弱性です。中でも、preg_replace関数(Perl互換の正規表現による置換を行なうための関数)を不適切な方法で使った場合に発生する脆弱性について調べていました。 せっかくなので、日記にまとめてみます。 3種類の脆弱性 preg_replace関数を使ったPHPコード実行系の脆弱性には、大きく分けて3つの種類があります。 第一引数への挿入を許す e修飾子付き・第二引数への挿入を許す e修飾子付き・第三引数への挿入を許す 以下でそれぞれについて見ていきます。 タイプ1:第一引数への挿入 以下のコードに、任意のPHPコードが実行可能な脆弱性があります。 $m = preg_replace("/([^<]*)$kw([^>]*)/i", "\\1<font color=red>$kw</font>\\2", $m); $kwと$mは外部から

    preg_replaceによるコード実行 - T.Teradaの日記
  • 例えばPHPのpreg_replace関数でe修飾子を避ける - hnwの日記

    (2015/04/19追記)e修飾子はPHP 5.5からdeprecatedになっています。また、PHP7からは廃止されます。 PHPのpreg_replace関数では、e修飾子が利用できます。これはPerlから輸入された機能で、置換後パターンの文字列をPHP文法に従って評価する(evalする)というものです。Perlを知らないとあまり使わない機能かもしれませんが、Perlを知っているとPHPでも使いたくなるのではないでしょうか。記事では、preg_replace関数でe修飾子を使う場合の注意点を指摘し、代替案を示します。 preg_replace関数のe修飾子 preg_replace関数のe修飾子は次のような機能です。 e 修飾子を設定すると、preg_replace() は、参照先の対応する置換を行う際に replacement 引数を PHP コードであるとして取り扱います。re

    例えばPHPのpreg_replace関数でe修飾子を避ける - hnwの日記
  • 6分でわかる最近のPHP ― 2012夏

    さて夏がやってきました。夏と言えばPHPということで、昨年に引き続き、最近のPHP事情をご紹介。 1. PHP5.4リリース PHP5.4が2012年3月にリリースされました。 Traits や Short array syntax(配列の短縮構文)、array dereferencing(foo()[0]) などのPHP言語拡張、PHPコマンドで起動するビルトインサーバ、そしてパフォーマンスの改善など大きな変更が加えられています。 言語自体の機能追加も注目ですが、ビルトインサーバは多くの人にとってメリットになるでしょう。これを使えばPHPアプリケーションの動作確認のためにApacheやnginxなどのhttpdサーバを自分のPCに入れる必要はありません。 下記のようなコマンドを打つだけで、ビルトインサーバが起動します。新しいフレームワークやライブラリ、アプリケーションを試してみたい時に手

  • [PHP]Level:8 MagpieRSS - チップとデール(chip&dale) ディズニーファン:楽天ブログ

    2011.02.07 [PHP]Level:8 MagpieRSS (1) カテゴリ:チップとデール MagpieRSSでプロパティ未定義エラー Message:Undefined property: MagpieRSS::$last_modified rss_fetch.incの156行目でしょうか・・・ if ( !empty($rss->etag) and $rss and $rss->etag and $rss->last_modified ) { こちらを・・・ if( $rss and array_key_exists("etag", get_object_vars($rss)) and array_key_exists("last_modified", get_object_vars($rss)) ){ 変更ですね。 お気に入りの記事を「いいね!」で応援しよう いいね!0 シ

    [PHP]Level:8 MagpieRSS - チップとデール(chip&dale) ディズニーファン:楽天ブログ
    vespid
    vespid 2012/07/22
  • mapee.jp

    This domain may be for sale!

    vespid
    vespid 2012/07/22
  • PHPでTwitter APIのOAuthを使う方法まとめ

    この記事以降 Twitter API の仕様が変わっており、このままでは正しく機能しない場合があると思います。近いうちに今のやり方を書くので、それまで参考程度にご覧ください。 Twitter API の OAuth でひととおりやってみた。 忘れないようにメモ。 大雑把な流れ Twitter にアプリケーションを登録する。 Consumer Key と Consumer secret を取得する。 リクエストトークンを取得する。 認証用 URL を取得する。 ユーザーから承認を受ける(bot の場合は自分でやる)。 アクセストークンを取得する。 API にアクセスする。 以下、やった作業の手順です。 事前準備 HTTP_OAuth を使えるようにする OAuth の通信部分そのものは PEAR の HTTP_OAuth を使うことにしたので これをインストールする。 一番めんどくさい部分を

    PHPでTwitter APIのOAuthを使う方法まとめ
  • PHPプロ!PHP講座新着順

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

    vespid
    vespid 2012/05/08
  • PHPでセキュリティを真面目に考える

    オープンソースカンファレンス2011 Hokkaido #osc11do 「PHPセキュリティを真面目に考える」 LOCAL PHP部 佐藤琢哉(@nazo) http://labs.nazone.info/

    PHPでセキュリティを真面目に考える
  • ZAPAnet総合情報局

    ZAPAnet総合情報局は、ゲーム攻略をメインに、ブログ、オリジナルWebアプリ、プログラミング、Wikiなど、多種多様なコンテンツを公開しているサイトです。 2020.07.08 攻略Wikiページに関連リンクを表示する機能を追加しました。 2020.07.01 ステルス将棋 棋譜再生を作りました! 2020.06.20 降魔霊符伝イヅナ攻略メモ、マジカルバケーション 5つの星がならぶとき攻略メモ、ロストマジック攻略メモ、[Contact]コンタクト攻略メモをスマホデザイン対応しました。 2020.06.14 めんまフォントお試しサイト、チンチロリン シミュレータ、ホビロン パスワード強化メーカー、色読みトレーニングをスマホ対応させました。J-POP最新人気曲ランキング100の表示を改良しました。 2020.06.11 ZAPAnet総合情報局のトップページ(このページです)のデザインを

    ZAPAnet総合情報局
    vespid
    vespid 2012/05/08
  • PHP Labo - フリーPHPスクリプト配布&改造&入門

    Free PHP Script Download, Customize, Tutorial 新・配布プログラムのみ、地道にメンテナスしていく予定。ライセンスはすべてGPLです。 PHP Labo のプログラムはシンプル路線ですが、高機能路線の freo を作成しました。 PHP入門の内容をもとにはじめてのPHPというを書きました。 広告 更新履歴 2014/12/23 フレームワークを修正しました。 2013/12/03 フレームワークを修正しました。 2013/11/01 フレームワークを修正しました。 開発日誌 RSS1.0 RSS2.0 新・配布プログラム 配布プログラムすべてのメンテナンスは難しいけど、仕事に流用するために作ったプログラムなどは公開しておきたい(ローカルだけに置いておいてファイルが行方不明にならないように、不具合を教えてもらえるかもしれない、などの理由で。)という

  • PHP入門

    これから PHP のプログラムを開始される方を対象とした PHP 入門です。 PHP での開発環境をローカル環境に構築する手順や、 PHP を使ったプログラミングの方法に関して実際にサンプルプログラムを作成しながら解説していきます。

    PHP入門
    vespid
    vespid 2012/05/08
  • PHP classの教室

    PHPで関数は使えるけれどオブジェクト指向はよくわからないという人向けの勉強会の資料です。 Ustream録画 (1/5) http://www.ustream.tv/recorded/21256905 67分 (2/5) http://www.ustream.tv/recorded/21253084 80分 (3/5) http://www.ustream.tv/recorded/21254139 60分 (4/5) http://www.ustream.tv/recorded/21254817 24分 (5/5) http://www.ustream.tv/recorded/21255084 6分

    PHP classの教室
  • 【 ほでなすPHP 】 PHPの基本 -> クラス

    クラス クラスとは 「クラス」は、『「メンバ変数(プロパティ)」という変数と「メンバ関数(メソッド)」という関数を内部に持つ』という特殊な構造をした、「オブジェクト型」の値、「オブジェクト」の構造を定義するものです。“論よりコード”ということで、まずは以下のサンプルと結果を見て雰囲気を掴んで下さい。 <?php class HODE{ var $dog = "wan"; var $cat = "nyan"; var $cow = "mou"; function func(){ echo "HODENASU!!!"; } } $obj = new HODE(); echo $obj->cat; echo "<hr />"; $obj->func(); ?> nyan HODENASU!!! まず、「class HODE{ 定義 }」の部分で、「HODE」という名の「クラス」を定義しています。

    vespid
    vespid 2012/02/22
    クラスについてよくまとめられている