pilulka / iterator
该软件包的官方仓库似乎已不存在,因此该软件包已被冻结。
dev-master
2024-03-14 09:56 UTC
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-07-14 10:51:38 UTC
README
这个库允许您遍历逻辑可迭代的流或资源。
已实现以下资源。
Curl Http Iterator
它允许您遍历给定的URL掩码,直到资源响应状态码与200 Ok不同。
示例
$mask = 'http://example.com/?p=%d'; $urlIterator = new UrlIterator($mask); $i = 0; foreach ($urlIterator as $pageContent) { printf( "Url: %s, length: %d\n", $urlIterator->getIterationUrl(), strlen($pageContent) ); if($i++ > 3) break; // to simulate invalid response }
更多用法请参阅这里。
Json Collection Iterator
它允许您遍历非常简单的REST集合。
示例
use Pilulka\Iterators\Http; $urlIterator = new Http\UrlIterator('http://private-62aa2-pilulkaiterator.apiary-mock.com/items'); $jsonIterator = new Http\JsonCollectionIterator($urlIterator); $i = 0; echo "Url: {$jsonIterator->getUrlIterator()->getIterationUrl()}\n"; foreach ($jsonIterator as $item) { echo var_export($item) . "\n"; if($i++ > 2) break; }
Email IMAP iterator
允许您遍历邮件收件箱。
示例
use Pilulka\Iterators\Mail\ImapIterator; $cfg = [ 'host' => '<hostname>', // e.g. {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX 'username' => '<username>', // e.g. jon.doe@example.com 'password' => '<password>', 'filter' => '<filter>', // See: https://php.ac.cn/manual/en/function.imap-search.php ]; $iterator = new ImapIterator( $cfg['host'], $cfg['username'], $cfg['password'] ); $iterator->setFilter($cfg['filter']); // e.g. FROM "john@example.com" $i = 0; foreach ($iterator as $mail) { /** @var \Pilulka\Iterators\Mail\Model\Mail $mail */ foreach ($mail->getAttachments() as $attachment) { if($attachment->isAttachment()) { printf( "File name: %s\nName:%s\nContent:\n%s", $attachment->getFilename(), $attachment->getName(), $attachment->getAttachment() ); } } if($i++ > 1) break; }
发布说明
此软件包满足我们公司的需求 - 您应将其视为实验性的。
我们将非常欢迎任何反馈或提供的拉取请求。