| Server IP : 213.186.33.4 / Your IP : 216.73.216.193 Web Server : Apache System : Linux webm006.cluster103.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : awebpaca ( 35430) PHP Version : 8.5.0 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/a/w/e/awebpaca/Dolibarr/htdocs/includes/sabre/sabre/vobject/lib/Splitter/ |
Upload File : |
<?php
namespace Sabre\VObject\Splitter;
use Sabre\VObject;
use Sabre\VObject\Parser\MimeDir;
/**
* Splitter.
*
* This class is responsible for splitting up VCard objects.
*
* It is assumed that the input stream contains 1 or more VCARD objects. This
* class checks for BEGIN:VCARD and END:VCARD and parses each encountered
* component individually.
*
* @copyright Copyright (C) fruux GmbH (https://fruux.com/)
* @author Dominik Tobschall (http://tobschall.de/)
* @author Armin Hackmann
* @license http://sabre.io/license/ Modified BSD License
*/
class VCard implements SplitterInterface
{
/**
* File handle.
*
* @var resource
*/
protected $input;
/**
* Persistent parser.
*
* @var MimeDir
*/
protected $parser;
/**
* Constructor.
*
* The splitter should receive an readable file stream as its input.
*
* @param resource $input
* @param int $options parser options, see the OPTIONS constants
*/
public function __construct($input, $options = 0)
{
$this->input = $input;
$this->parser = new MimeDir($input, $options);
}
/**
* Every time getNext() is called, a new object will be parsed, until we
* hit the end of the stream.
*
* When the end is reached, null will be returned.
*
* @return \Sabre\VObject\Component|null
*/
public function getNext()
{
try {
$object = $this->parser->parse();
if (!$object instanceof VObject\Component\VCard) {
throw new VObject\ParseException('The supplied input contained non-VCARD data.');
}
} catch (VObject\EofException $e) {
return;
}
return $object;
}
}