<?php if (!isset($argv)) { fprintf(STDERR, "Must be run on command line"); exit(1); } if (!isset($argv[3])) { fprintf(STDERR, "USAGE: %s archive_name stubfile source1 [source2...]" . PHP_EOL, $argv[0]); exit(2); } $phar = new Phar($argv[1]); foreach (array_slice($argv, 2) as $file) { $phar->addFile(__DIR__ . "/$file", $file); } $stub = $argv[2]; $phar->addFile(__DIR__ . "/$stub", $stub); $phar->setStub($phar->createDefaultStub($stub));データ構造は、コンピューターがデータを保存および編成する方法です。データ構造とは、相互に 1 つ以上の特定の関係を持つデータ要素のコレクションを指します。多くの場合、データ構造を慎重に選択すると、操作効率やストレージ効率が向上します。データ構造は、多くの場合、効率的な検索アルゴリズムやインデックス付け技術に関連しています。
<?php if (! ($loader = @include __DIR__ . '/../vendor/autoload.php')) { die(<<<EOT You need to install the project dependencies using Composer: $ wget http://getcomposer.org/composer.phar OR $ curl -s https://getcomposer.org/installer | php $ php composer.phar install --dev $ phpunit EOT ); } $loader->add('Negotiation\Tests', __DIR__);コンテンツ ネゴシエーション テクノロジには通常、次の 3 つの実装スキームがあります。 (1) クライアント ドライバクライアントはリクエストを開始し、サーバーはオプションのリストを送信し、クライアントがリクエストを行った後、選択すると、2 番目のリクエストが送信されます。 利点: 実装が比較的簡単です。欠点: 遅延が増加します。少なくとも 2 つのリクエストを送信する必要があります。最初のリクエストはリソース リストを取得し、2 番目のリクエストは選択されたコピーを取得します。 (2) サーバー ドライバーサーバーはクライアントのリクエスト ヘッダー セットを確認し、提供するページのバージョンを決定します。 利点: クライアント主導のネゴシエーションよりも高速です。 HTTP は、サーバーがおおよその一致を判断できるようにする q メカニズムを提供し、サーバーがダウンストリーム デバイス (プロキシ サーバーなど) にリクエストの評価方法を伝えるための Variable ヘッダーも提供します。 欠点: ヘッダー セットが一致しないため、サーバーは推測する必要があります(3) 透過的なネゴシエーション中間デバイス (通常はキャッシュ プロキシ) が代わりにネゴシエーションを行います。クライアント利点: Web サーバーのネゴシエーションのオーバーヘッドが排除され、クライアント主導のネゴシエーションよりも高速です。 欠点: HTTP は対応する仕様を提供していません
<?php /** * CakePHP(tm) : Rapid Development Framework (https://cakephp.org) * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) * * Licensed under The MIT License * For full copyright and license information, please see the LICENSE.txt * Redistributions of files must retain the above copyright notice. * * @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) * @link https://cakephp.org CakePHP(tm) Project * @since 3.0.0 * @license https://opensource.org/licenses/mit-license.php MIT License */ namespace Cake\Collection; use ArrayIterator; use InvalidArgumentException; use IteratorIterator; use LogicException; use Serializable; use Traversable; クラス ライブラリ (クラス ライブラリ) は、インターフェイス、抽象クラス、具象クラスを含む、オブジェクト指向の再利用可能な型の包括的なコレクションです。クラス ライブラリは、さまざまな一般的なプログラミング タスク (文字列管理、データ収集、データベース接続、ファイル アクセスなどのタスクを含む) だけでなく、さまざまな特殊な開発タスク (コンソール アプリケーション、デスクトップ アプリケーション、WEB アプリケーションなど) も解決できます。 )。
このシンプルな PHP 検証ライブラリを全員と共有します。困っている友達が来て参考にしてくださいclass ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';//随机因子 private $code;//验证码 private $codelen = 4;//验证码长度 private $width = 130;//宽度 private $height = 50;//高度 private $img;//图形资源句柄 private $font;//指定的字体 private $fontsize = 20;//指定字体大小 private $fontcolor;//指定字体颜色 //构造方法初始化 public function __construct() { $this->font = dirname(__FILE__).'/font/elephant.ttf';//注意字体路径要写对,否则显示不了图片 }
<?php require 'vendor/autoload.php'; use Filterus\Filter; $filter = Filter::map(array('foo' => 'string,min:4,default:test')); $tmp = array('foo' => 'bar'); var_dump(Filter::factory($filter)->filter($tmp)); //var_dump(Filter::factory($argv[1])->validate($argv[2]));PHP では、SQL インジェクション攻撃や XSS (Cross Site Scripting: クロスサイト スクリプティング) 攻撃など、さまざまな攻撃から Web サイトを防ぐのに非常に便利ないくつかの非常に便利な関数がオープンソースになっています。シンプルな PHP フィルタリング ライブラリは非常にシンプルで使いやすいフィルタリング ライブラリです
<?php // Copyright (c) Lellys Informática. All rights reserved. See License.txt in the project root for license information. namespace Collections; use Collections\Comparer\NumericKeyComparer; use Collections\Generic\ComparerInterface; use Easy\Generics\EquatableInterface; /** * Provides the abstract base class for a strongly typed collection. */ abstract class AbstractCollection implements EquatableInterface { }PHP が広く使用されるようになったことで、異なるデータベースを使用することも非常に一般的になってきました。 PHP は、より多くのデータベース接続インターフェイスをサポートする必要があるため、単一のインターフェイスを介して単一のデータベース用のプログラムのみを作成すると、PHP の複雑さと学習のしきい値が大幅に増加します。この問題を解決するために登場したのが、決済用の抽象 PHP ライブラリです。 これは、PHP がデータベースにアクセスするための軽量で一貫したインターフェイスを定義します。データ アクセス抽象化レイヤーを提供し、PHP がどのデータベースに接続されているかに関係なく、一貫した関数を通じてクエリを実行し、データを取得できます。 PDO は php5.1 のリリースで出荷され始めました。以前のバージョンの php は、支払い用の抽象 PHP ライブラリをサポートしていませんでした。 機能: (1) php の実行中に使用できる柔軟性実行中。新しいデータベースを使用する場合、リセットやコンパイルを行わずに、新しいデータベースを直接ロードします。 (2) オブジェクト指向: オブジェクトを通じてデータベースの使用を制御します。 (3) 高速 PDO は C 言語で記述され、PHP にコンパイルされるため、PHP で記述された抽象クラスよりもはるかに高速です。
<?php namespace DMS\Filter; use DMS\Filter\Filters\Loader\FilterLoader; use DMS\Tests\FilterTestCase; use DMS\Tests\Dummy; class FilterTest extends FilterTestCase { /** * @var \DMS\Filter\Filter */ protected $filter; public function setUp() { parent::setUp(); $this->filter = new Filter($this->buildMetadataFactory(), new FilterLoader()); } public function tearDown() { parent::tearDown(); }PHP では、SQL インジェクション攻撃や XSS (Cross Site Scripting: クロスサイト スクリプティング) 攻撃など、さまざまな攻撃から Web サイトを防ぐのに非常に便利ないくつかの非常に便利な関数がオープンソースになっています。そこで、非常に使いやすいアノテーションベースの PHP フィルタリング ライブラリがあります。
Laravel は、シンプルでエレガントな PHP Web 開発フレームワーク (PHP Web フレームワーク) です。ヌードルのような乱雑なコードから解放され、完璧なネットワーク APP を構築するのに役立ち、コードの各行を簡潔かつ表現力豊かにすることができます。 Laravel には、高度な PHP ActiveRecord 実装である Eloquent ORM がすでにあります。関係の両側に「制約」を簡単に適用できるため、データを完全に制御し、ActiveRecord の利便性をすべて享受できます。 Eloquent は、Fluent のクエリ ビルダー (クエリ ビルダー) のすべてのメソッドをネイティブにサポートします。 rreeee
<?php class FileInfoTest extends PHPUnit_Framework_TestCase { protected $fileWithExtension; protected $fileWithoutExtension; public function setUp() { $this->fileWithExtension = new \Upload\FileInfo(dirname(__FILE__) . '/assets/foo.txt', 'foo.txt'); $this->fileWithoutExtension = new \Upload\FileInfo(dirname(__FILE__) . '/assets/foo_wo_ext', 'foo_wo_ext'); }このライブラリの PHP アップロード メカニズムは完全にカプセル化されています。実装プロセスは次のとおりです。ファイルを一時ディレクトリにアップロードしますか?>指定されたディレクトリに move_uploadde_file() を使用しますこれは PHP アップロード プロセスです。または、途中で検証を実行することもできます。たとえば、ドキュメントがアップロードによって送信されたかどうか、またはファイル拡張子が当社によって許可されているかどうかを判断します。
<?php /** * This file is part of the Hal library * (c) Ben Longden <ben@nocarrier.co.uk * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * @package Nocarrier */ namespace Nocarrier; class Hal { protected $uri;ハイパーテキスト式言語は、ハイパーテキスト マークアップ言語です。ハイパーテキスト マークアップ言語は、標準ユニバーサル マークアップ言語に基づくアプリケーションであり、仕様および標準でもあり、マークアップ シンボルを使用して、表示される Web ページのさまざまな部分をマークします。 Web ページのファイル自体はテキスト ファイルであり、テキスト ファイルにタグを追加することで、コンテンツの表示方法 (テキストの処理方法、画像の配置方法、画像の表示方法など) をブラウザーに指示することができます。ブラウザはWebページのファイルを順番に読み込み、マークされた内容をタグに応じて解釈して表示します タグの書き間違いによるエラーの指摘や解釈・実行の処理を停止することはありません コンパイラでのみ実行可能表示効果やエラー箇所からエラーの原因を分析します。ただし、異なるブラウザでは同じタグの解釈が異なる場合があり、そのため表示効果が異なる場合があることに注意してください。
<?php /* * This file is part of Hashids. * (c) Ivan Akimov <ivan@barreleye.com> * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Hashids; use RuntimeException; /** * This is the math class. * @author Vincent Klaiber <hello@vinkla.com> * @author Jakub Kramarz <lenwe@lenwe.net> */ class Math { /** * Add two arbitrary-length integers. * @param string $a * @param string $b * @throws \RuntimeException * @return string */ public static function add($a, $b) { if (function_exists('gmp_add')) { return gmp_add($a, $b); } if (function_exists('bcadd')) { return bcadd($a, $b, 0); } throw new RuntimeException('Missing BC Math or GMP extension.'); }文字列または文字列 (String) は、数字、文字、アンダースコアで構成される文字列です。通常はs=“a1a2・・・an”(n>=0)として記録されます。プログラミング言語でテキストを表すデータ型です。プログラミングにおいて、文字列とは、記号文字列 (文字列) やバイナリ数字文字列 (2 進数字の文字列) など、記号または値の連続したシーケンスです。 通常、文字列内の部分文字列の検索、部分文字列の取得、文字列内の特定の位置への部分文字列の挿入、部分文字列の削除など、文字列全体が操作オブジェクトとして使用されます。 2 つの文字列が等しいための必要十分条件は、長さが等しいこと、および対応する各位置の文字が等しいことです。 p と q が 2 つの文字列であると仮定し、p の中で q が最初に出現する位置を見つける操作をパターン マッチングと呼びます。文字列の最も基本的な 2 つの保存方法は、シーケンシャル ストレージとリンク ストレージです。
これは、PHP コードの一部を通じて実装されたフォーム データ検証クラスです。非常に使いやすく便利なフォーム データ検証クラスです。<?php //验证类 class Fun{ function isEmpty($val) { if (!is_string($val)) return false; //是否是字符串类型 if (empty($val)) return false; //是否已设定 if ($val=='') return false; //是否为空 return true; }