タグ

phpに関するmeganemegane103jpのブックマーク (13)

  • 【PHP関数】レーベンシュタイン距離を求める関数の日本語対応

    ■レーベンシュタイン距離とは このコピペチェックツールで利用しているアルゴリズムです。編集距離とも呼ばれています。2つの文字列を何回変更すると同じ文字列になるかを求めるアルゴリズムです。 レーベンシュタイン距離は数値が小さいほど同じような文字列であると判断できます。レーベンシュタイン距離が0のものが全く同じ文字列となります。 このレーベンシュタイン距離ですが、phpではlevenshteinメソッドとして提供されています。 しかし、このlevenshteinメソッドは2バイト文字列である日語には対応していません。正しいレーベンシュタイン距離が出ません。 今回は、この関数を2バイト文字列に対応させます。 ■2バイト文字に対応させる Qiitaで2バイト対応させるコードが公開されていました。ありがとうございます。この関数を利用することで、日語でも正確にレーベンシュタイン距離を取得することが

    【PHP関数】レーベンシュタイン距離を求める関数の日本語対応
  • [CakePHP]saveを連続で実行したとき、データがUPDATEされるのを防ぐ

    CakePHPDB上のデータを新規追加したりするときはsaveメソッドを使うことが多いと思います。便利です。しかし、挙動を理解しておかないと意図しない動きをすることがあります。 対象はCakePHP2系となっています。 ■データ新規追加時に連続してsaveを実行すると、2回目以降のsaveはupdateになる 以下の様な実装があったとします。$targetDataListに入っている3つのデータを新規にDB上に登録します。モデルに記述しているものとします。 $targetDataList = ['hoge', 'moge', 'hogehoge']; foreach($targetDataList as $targetData) { $insertData = ['data' => $targetData]; $this->save($insertData, false); } save

    [CakePHP]saveを連続で実行したとき、データがUPDATEされるのを防ぐ
  • 【PHP】データ内に改行のあるCSVの処理方法

    ■特徴 SplFileObjectを利用しているため、エクセルで読み込みできる形式のCSVを読み込み可能です。データ内に改行が含まれるCSVも読み込みすることができます。 filePathにファイルが存在するパスを指定すると、CSVの内容が配列として戻ってきます。行数が多い場合は読み込みながらの処理に変更したほうが良いでしょう。 ■以下、サンプルです <?php function readCsv($filePath) { // CSV読み込み $file = new SplFileObject($filePath); $file->setFlags(SplFileObject::READ_CSV); $csvList = array(); foreach ($file as $line) { // 空のレコードは無視 if (!empty($line)) { $csvList[] = $l

    【PHP】データ内に改行のあるCSVの処理方法
    meganemegane103jp
    meganemegane103jp 2016/02/17
    データ内に改行を含むCSVを読み込むサンプル
  • curl_multiでPHPから並列アクセスを実現するサンプルを書いた

    PHPでは並列処理を実現する機能は基的にありません。しかし、cURLを複数同時に実行するcurl_multiを利用すれば並列処理が一定可能です。並列して実行できるのでAPIへ効率よくアクセスすることが可能になります。 ■並列にサイトにアクセスするサンプル 今回はそのサンプルを書いてみました。$urlListにアクセスしたいURLをhttp://またはhttps://から始まる形式で配列として入れておきます。するとその配列の数だけ並列アクセスします。 以下、サンプルとなります。実装に合わせてカスタマイズしてみてください。 <?php /** * 複数並列で実行します。 * 引数のurlListにアクセスしたいURLの一覧を配列で入れておきます。 */ function multi_curl_execute($urlList, $timeout = 20) { // なにもないときは戻る。

    curl_multiでPHPから並列アクセスを実現するサンプルを書いた
    meganemegane103jp
    meganemegane103jp 2016/02/02
    curl_multiのサンプルを書いた。
  • curlを使ってPHPのプログラム上から対象サイトへアクセスするサンプル

    PHPCurlを使ったウェブサイトへのアクセスのサンプルです。いつもすぐに忘れてしまうので、書き残しておきます。こちらの記事でcurl_multiによる並列アクセスのサンプルについても書いています。よろしければ、併せて確認してみてください。 ■サンプルコード URLを第一引数に設定してあげると、そのURLにアクセスした結果を返却してくれます。 public function curlGetContents( $url, $timeout = 2 ){ $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, $url ); curl_setopt( $ch, CURLOPT_HEADER, false ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CU

    curlを使ってPHPのプログラム上から対象サイトへアクセスするサンプル
  • PHPからmongodbへ接続するまでの手順

    PHPからmongodbへ接続するまでの手順 PHPからmongodbにアクセスできるようにするための手順を紹介します。mongodb体のインストール方法は【YUMでmongoDBをインストールする】を参考にしてください。 1.コンパイルに必要なパッケージをインストールする この辺が入っていれば、だいたいコンパイルできると思います。gccのインストールがされていない場合は、結構いろいろなパッケージがアップデートされたりするので、気をつけましょう。 yum install php-devel gcc 2.PHPのドライバモジュールをインストールする 接続するためにドライバをインストール(コンパイル)します。以下のコマンドを実行してみてください。スーパーユーザ権限で実行してください。コンパイルが始まります。 pecl install mongo 3.PHPの設定ファイルに以下を書き込み 先

    PHPからmongodbへ接続するまでの手順
  • nginx + php-fpmでCaekPHPを利用するまでの設定

    CakePHPnginxで動かそうとした時にハマった点をかきました。普通に配置しても以下のように「I don’t / can’t use URL rewriting」という感じでmod_rewrite的なことができません。と出てきます。 結果、CSS等も読み込まれずに死亡しています。 結局以下の設定で動作するようになりました。apacheの設定だと、ドキュメントルートが /var/www/cakephp-2.4.10で動きますが、nginxだとwebrootまで指定する必要があります。 server { listen 80; server_name supersonico.info; root /var/www/cakephp-2.4.10/app/webroot; index index.php; location / { try_files $uri $uri/ /index.php

    nginx + php-fpmでCaekPHPを利用するまでの設定
    meganemegane103jp
    meganemegane103jp 2015/10/19
    nginxとphp-fpmでcakephpを動かす
  • 【PHP】誰にでも簡単に使える【CSVをダウンロードさせるサンプル】を書いた

    今でもCSV形式でダウンロードさせるシステムは多いと思います。よく使うのでサンプルを書きました。 こちらにCSVを読み込むサンプルも書きました。併せて参考にしてみてください。 ■このサンプルの特徴 ▼エクセルで開いても文字化けしない エクセルで開いた時にも文字化けしないような考慮をしています。 ▼データ内に改行を含むCSVもエクセルで開ける fputcsv関数を使って実装しています。CSVのデータ内に改行を含んでいても、エクセルで開けるようになっています。 ▼メモリを気にせず利用できる テンポラリファイルを作成、CSV出力後にそこからダウンロードさせる方式を採っています。/tmp/直下に一時ファイルを作成するので、ある一定程度時間が経過すれば自動で消えます。テンポラリファイルにCSV形式で一旦出力するので、メモリ不足になることも少ないと思います。 ■サンプルコード 関数名など適宜いろいろ変

    【PHP】誰にでも簡単に使える【CSVをダウンロードさせるサンプル】を書いた
  • PHPで指定ディレクトリ以下のファイル一覧を取得する

    PHPで指定したディレクトリの以下のファイル一覧を取得するサンプルです。RecursiveDirectoryIteratorを利用しているので、非常に簡単にファイル一覧を取得することができます。こちらで紹介している、ZIPファイルでアップロード→サーバ上で展開した後に、結果を処理するときに利用できるかと思います。 再帰的にディレクトリを確認します。 このサンプルでは、ディレクトリ以下のファイルのフルパス一覧を取得します。 $preparePath = '調査したいディレクトリ'; // ファイルの操作を開始 $iterator = new RecursiveDirectoryIterator($preparePath); $iterator = new RecursiveIteratorIterator($iterator); $fileList = array(); foreach ($

    PHPで指定ディレクトリ以下のファイル一覧を取得する
  • 「Composer 再入門」を発表してきました( #KOF2013 )

    2013/11/8, 9に大阪南港で開催されたKOF(関西オープンフォーラム)2013にて「関西PHP勉強会」のセッションを行いました。 今回は、いまやPHPerの必須ともいうべきComposerをテーマにしました。その中で「Composer 再入門」を発表してきました。 Composer再入門 この発表では、Composer の基的な使い方を紹介しています。自分でライブラリを公開する際の内容は @slywalker さんが発表されています。 Composer を使うこと自体は簡単なので、基的なところさえ知っておけば、特に問題は無いと思います。 ただ、今回の発表や先日行った Vagrant ハンズオンの際に感じたのですが、ターミナル操作の経験が無い人には、取っ付きづらいツールかもしれません。Composer を使わなくても、ZIP ファイルを直接ダウンロードすれば、フレームワークやライ

    meganemegane103jp
    meganemegane103jp 2014/07/03
    いまどきのPHP開発って感じがします。
  • Chef + VagrantでCentOS 6.5 + rbenv + Nginx + Passenger + Rails4 環境を構築する | もふもふ技術部

    自作cookbooksは最小限にしてなるべくcommunity cookbookを使う方針で。 けっこうハマりました。特にNginx + Passengerあたりがcommunity cookbookではうまくいかず(rbenvだからいけなかったか?)、仕方なく自前でソースコードをコンパイルするレシピを書いたりした。 環境はMac 10.9 marvericksで。 お料理するよ! Vagrant, Chef, knife-solo, Berkshelfなどのインストールは過去にやっているので参照されたし。 Vagrant Vagrantで簡単にUbuntu 12.04を動かしてみるところまで。 Chef, knife-solo CentOS 6.4でchef soloとknife soloを使ってphp実行環境を構築 berkshelfとpluginのインストール

    Chef + VagrantでCentOS 6.5 + rbenv + Nginx + Passenger + Rails4 環境を構築する | もふもふ技術部
    meganemegane103jp
    meganemegane103jp 2014/07/03
    うーん。最近関わってくるソフトウェアが多くなりすぎて、わかりにくい感じがします。トラブル起こった時にどうなるんだろう。とか考えるとなかなか踏み出せないのがつらい。
  • シリコンバレーのスタートアップはどんなプログラム言語を使っているのか? デザイン会社 ビートラックス: ブログ

    先日どんなプログラミング言語をアメリカの企業やサービスが使っているのかリサーチしていたところ、興味深い英語記事を発見したのでシェアしたいと思います。 今日では様々なプログラミング言語が存在しそれぞれの言語が特定のそしてユニークな役割を果たしています。これらは特徴が異なるためどの言語が優れているか一概に言うことはもちろん出来ません。しかし時代によって人気のプログラミングの言語は移り変わっています。今シリコンバレーエリアの企業で使われているプログラミング言語は何なのでしょうか? スタートアップに人気の4言語 – PHP, Ruby(Rails), Scala, PythonPHP – ウェブ開発において最も人気の言語動的なページを作る上で最適なサーバーサイドスクリプト言語である。シンプルなブログ作成から誰もが使ってる世界的ウェブサービスを作るまで様々な用途に対応する。2013年1月の時点で、P

    シリコンバレーのスタートアップはどんなプログラム言語を使っているのか? デザイン会社 ビートラックス: ブログ
    meganemegane103jp
    meganemegane103jp 2014/07/02
    PHPって、フレームワークとか使っているのかしら。気になる
  • JenkinsでPHPプログラムをデバッグしてみよう!!

    先日社内でJenkinsについての勉強会を行ないました。 勉強会を行った際に、JenkinsでPHPプログラムをデバッグしてみましたので 今回はJenkinsを用いてPHPプログラムをデバッグするまでの設定方法について書きたいと思います。 PHPでJenkinsを使ってみたいが、設定がわからないという方は参考にしてください。 Ⅰ:環境 以下の環境で設定を行ないました。 ・OS:Centos6 ・PHP:5.3 ・フレームワーク:ZendFramework ・JenkinsURL:http://jenkins.example.com:8080 (URLはJenkinsをインストールしたマシンのアドレスに変更してください) Ⅱ:サーバ上に準備するもの 1:必要なソフト一覧 ①:Phing phpcs,phpmd,phpcpd,phpDocumentor,phpunitを一括管理することができる

    JenkinsでPHPプログラムをデバッグしてみよう!!
    meganemegane103jp
    meganemegane103jp 2014/06/30
    jenkinsのこと。初期の頃から導入したい
  • 1