本文整理汇总了PHP中Curl\Curl::download方法的典型用法代码示例。如果您正苦于以下问题:PHP Curl::download方法的具体用法?PHP Curl::download怎么用?PHP Curl::download使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Curl\Curl
的用法示例。
在下文中一共展示了Curl::download方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: create
/**
* Create user cache.
*
* @param string $user Twitter screen name
* @return bool If successful true
* @throws CacheException Any errors
*/
public function create($user)
{
try {
$path = config("cache.path") . "/{$user}";
$json_file = "{$path}/data.json";
if (!$this->exists($user)) {
mkdir($path);
}
if (!file_exists($json_file)) {
touch($json_file);
}
$response = $this->twistOAuth->get("users/show", ["id" => $user]);
$image_url = str_replace("_normal", "", $response->profile_image_url_https);
$info = new SplFileInfo($image_url);
$curl = new Curl();
$curl->setUserAgent(SaveTweet::APP_NAME . "/" . SaveTweet::APP_VERSION . " with PHP/" . PHP_VERSION);
$curl->download($image_url, "{$path}/icon.{$info->getExtension()}");
$curl->close();
$data = ["name" => $response->name, "screen_name" => $response->screen_name, "id" => $response->id_str, "icon" => config("cache.http_path") . "/{$response->id_str}/icon.{$info->getExtension()}", "org_icon" => $image_url, "update_at" => time()];
$json = json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
(new SplFileObject($json_file, "w"))->fwrite($json);
return true;
} catch (RuntimeException $e) {
$this->_catch($e);
}
}
示例2: getNews
/**
* Get news item, including title, publish time,
* description, content, images and keywords.
*
* @param string $url
*
* @return array
*/
public function getNews($url)
{
$dom = $this->dom($url);
//标题
$title = $dom->find('h1', 0)->getPlainText();
//发布时间
$time = $dom->find('.post_time_source', 0)->getPlainText();
$time = strtotime(strstr($time, ' 来源', true));
//描述
$desc = $dom->find('.post_desc', 0)->getPlainText();
$desc = trim($desc);
//内容
$body = $dom->find('#endText');
$content = '';
foreach ($body as $ele) {
$content .= $ele->innerHtml();
}
//下载图片
$path = '';
if ($url = $dom->find('.post_text p img', 0)->getAttr('src')) {
$path = preg_replace('~http://.*?/sports/~', '', $url);
$dir = dirname($path);
if (!is_dir($dir)) {
mkdir($dir, 0777, true);
}
$this->curl->download($url, $path);
}
return compact('title', 'time', 'desc', 'content', 'path');
}
示例3: testDownloadCallback
public function testDownloadCallback()
{
// Upload a file.
$upload_file_path = Helper\get_png();
$upload_test = new Test();
$upload_test->server('upload_response', 'POST', array('image' => '@' . $upload_file_path));
$uploaded_file_path = $upload_test->curl->response->file_path;
// Download the file.
$callback_called = false;
$curl = new Curl();
$curl->setHeader('X-DEBUG-TEST', 'download_response');
$curl->download(Test::TEST_URL . '?' . http_build_query(array('file_path' => $uploaded_file_path)), function ($instance, $fh) use(&$callback_called) {
PHPUnit_Framework_Assert::assertFalse($callback_called);
PHPUnit_Framework_Assert::assertInstanceOf('Curl\\Curl', $instance);
PHPUnit_Framework_Assert::assertTrue(is_resource($fh));
PHPUnit_Framework_Assert::assertEquals('stream', get_resource_type($fh));
PHPUnit_Framework_Assert::assertGreaterThan(0, strlen(stream_get_contents($fh)));
PHPUnit_Framework_Assert::assertEquals(0, strlen(stream_get_contents($fh)));
PHPUnit_Framework_Assert::assertTrue(fclose($fh));
$callback_called = true;
});
$this->assertTrue($callback_called);
// Remove server file.
$this->assertEquals('true', $upload_test->server('upload_cleanup', 'POST', array('file_path' => $uploaded_file_path)));
unlink($upload_file_path);
$this->assertFalse(file_exists($upload_file_path));
$this->assertFalse(file_exists($uploaded_file_path));
}
示例4: Curl
<?php
require '../src/Curl/Curl.php';
use Curl\Curl;
$curl = new Curl();
$curl->download('https://php.net/images/logos/php-med-trans.png', '/tmp/php-med-trans.png');
示例5: Curl
<?php
require __DIR__ . '/vendor/autoload.php';
use Curl\Curl;
$curl = new Curl();
$curl->progress(function ($client, $download_size, $downloaded, $upload_size, $uploaded) {
if ($download_size === 0) {
return;
}
$percent = floor($downloaded * 100 / $download_size);
echo ' ' . $percent . '%' . "\r";
});
$curl->download('https://secure.php.net/distributions/manual/php_manual_en.html.gz', '/tmp/php_manual_en.html.gz');
示例6: download
public function download($uid, $url, $filename = NULL, $ext = NULL)
{
if (empty($url)) {
return static::DOWNLOAD_ERR_URL;
}
ignore_user_abort(TRUE);
set_time_limit(0);
$file_path = tempnam(storage_path('utils'), 'download-');
$curl = new Curl();
$curl->setOpt(CURLOPT_BINARYTRANSFER, TRUE);
$curl->setOpt(CURLOPT_SSL_VERIFYPEER, false);
$curl->setOpt(CURLOPT_SSL_VERIFYHOST, false);
//$curl->setOpt(CURLOPT_NOSIGNAL, 1); //cURL毫秒就报错的BUG http://www.laruence.com/2014/01/21/2939.html
$curl->download($url, $file_path);
if ($curl->error) {
return static::DOWNLOAD_ERR_FILE;
}
$download_filename = $curl->responseHeaders['Content-Disposition'];
$basename = mb_basename($url);
//pathinfo($url,PATHINFO_BASENAME);
if (!empty($download_filename)) {
preg_match('/filename\\s*=\\s*(\\S*)/i', $download_filename, $tmp);
!empty($tmp) && ($basename = mb_basename(trim($tmp[1], '\'"')));
//pathinfo($download_filename,PATHINFO_BASENAME);
}
return $this->savefile($uid, $file_path, $basename, $filename, $ext, 'Download from:' . $url);
}
示例7: Curl
<?php
require __DIR__ . '/vendor/autoload.php';
use Curl\Curl;
$curl = new Curl();
$curl->download('https://php.net/images/logos/php-med-trans.png', function ($instance, $tmpfile) {
$save_to_path = '/tmp/' . basename($instance->url);
$fh = fopen($save_to_path, 'wb');
stream_copy_to_stream($tmpfile, $fh);
fclose($fh);
});
示例8: Curl
<?php
require __DIR__ . '/vendor/autoload.php';
use Curl\Curl;
$start_url = 'https://php.net/images/logos/php-med-trans.png';
$final_url = 'https://secure.php.net/images/logos/php-med-trans.png';
$curl = new Curl();
$curl->setOpt(CURLOPT_FOLLOWLOCATION, true);
$curl->download($start_url, '/tmp/php-med-trans.png');
assert($final_url === $curl->effectiveUrl);
示例9: Curl
<?php
/**
* Created by PhpStorm.
* User: lee
* Date: 15-12-18
* Time: 下午3:37
*/
require __DIR__ . "/../vendor/autoload.php";
use Curl\Curl;
$curl = new Curl();
$url = 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1070902365,2619384777&fm=116&gp=0.jpg';
$filename = 'example.jpg';
print_r($curl->download($url, $filename));
示例10: actionStations
/**
* Imports stations information from EDDB
*/
public function actionStations()
{
$eddbApi = Yii::$app->params['eddb']['archive'] . 'stations.json';
$time = date('d-m-y_h');
$file = Yii::getAlias('@app') . '/runtime/stations' . $time . '.json';
// Download the data from EDDB if the data that we have is out of date
if (!file_exists($file)) {
$this->stdOut('Systems data from EDDB is out of date, fetching RAW JSON from EDDB');
$curl = new Curl();
$curl = new Curl();
$curl->setOpt(CURLOPT_ENCODING, 'gzip');
$curl->download($eddbApi, $file);
}
$bench = new \Ubench();
$result = $bench->run(function ($file, $type) {
$this->importJsonData($file, $type);
}, $file, 'stations');
$this->stdOut("Systems import completed\n");
$this->stdOut($bench->getTime(false, '%d%s') . "\n");
$this->stdOut($bench->getMemoryPeak(false, '%.3f%s') . "\n");
$this->stdOut($bench->getMemoryUsage() . "\n");
}
示例11: testDownloadRange
public function testDownloadRange()
{
// Create and upload a file.
$filename = Helper\get_png();
$uploaded_file_path = Helper\upload_file_to_server($filename);
$filesize = filesize($filename);
foreach (array(false, 0, 1, 2, 3, 5, 10, 25, 50, $filesize - 3, $filesize - 2, $filesize - 1, $filesize - 0, $filesize + 1, $filesize + 2, $filesize + 3) as $length) {
$source = Test::TEST_URL;
$destination = Helper\get_tmp_file_path();
// Start with no file.
if ($length === false) {
$this->assertFalse(file_exists($destination));
// Start with $length bytes of file.
} else {
// Simulate resuming partially downloaded temporary file.
$partial_filename = $destination . '.pccdownload';
if ($length === 0) {
$partial_content = '';
} else {
$file = fopen($filename, 'rb');
$partial_content = fread($file, $length);
fclose($file);
}
// Partial content size should be $length bytes large for testing resume download behavior.
if ($length <= $filesize) {
$this->assertEquals($length, strlen($partial_content));
// Partial content should not be larger than the original file size.
} else {
$this->assertEquals($filesize, strlen($partial_content));
}
file_put_contents($partial_filename, $partial_content);
$this->assertEquals(strlen($partial_content), strlen(file_get_contents($partial_filename)));
}
// Download (the remaining bytes of) the file.
$curl = new Curl();
$curl->setHeader('X-DEBUG-TEST', 'download_file_range');
$curl->download($source . '?' . http_build_query(array('file_path' => $uploaded_file_path)), $destination);
clearstatcache();
$expected_bytes_downloaded = $filesize - min($length, $filesize);
$bytes_downloaded = $curl->responseHeaders['content-length'];
if ($length === false || $length === 0) {
$expected_http_status_code = 200;
// 200 OK
$this->assertEquals($expected_bytes_downloaded, $bytes_downloaded);
} elseif ($length >= $filesize) {
$expected_http_status_code = 416;
// 416 Requested Range Not Satisfiable
} else {
$expected_http_status_code = 206;
// 206 Partial Content
$this->assertEquals($expected_bytes_downloaded, $bytes_downloaded);
}
$this->assertEquals($expected_http_status_code, $curl->httpStatusCode);
if (!$curl->error) {
$this->assertEquals($filesize, filesize($destination));
unlink($destination);
$this->assertFalse(file_exists($destination));
}
}
// Remove server file.
Helper\remove_file_from_server($uploaded_file_path);
unlink($filename);
$this->assertFalse(file_exists($filename));
}
示例12: mkdir
$dirPath = "download/" . $obj->articleId . '/';
$displayFile = $downloadFiles[$key]['displayFile'];
$linkFile = $downloadFiles[$key]['linkFile'];
//file_put_contents($myLog,$dirPath.$linkFile);
if (!file_exists($dirPath . $linkFile)) {
//file_put_contents($myLog,"file is empty");
if (!file_exists($dirPath)) {
mkdir($dirPath, 0777);
}
$downloadPath = $downloadBaseUrl . $obj->articleId . '/' . $linkFile;
//$downlaodFileName = "download/".$obj->articleId."/".$displayFile ;
//file_put_contents($myLog,$downloadPath);
$fileSaveAs = "download/" . $obj->articleId . '/' . $linkFile;
$agent = new Curl();
$agent->setOpt(CURLOPT_ENCODING, 'gzip');
$agent->download($downloadPath, $fileSaveAs);
$agent->close();
/*
$wget = '/usr/bin/wget';
//$downloadPath = "http://163.17.39.135/data/school/board/2912/1452829198_1-2016_01_15.pdf";
$cmd = "$wget --directory-prefix=$dirPath $downloadPath ";
exec($cmd);
//file_put_contents("download/".$obj->articleId."/".$displayFile, fopen("$myLog,$downloadBaseUrl.$linkFile", 'r'));
*/
}
}
//foreach($downloadFiles as $key=>$file)
}
//end if
print $curl->response;
}
示例13: install
/**
*
*/
public function install()
{
// read configuration file
$this->configuration = json_decode(file_get_contents($this->configurationFilepath), true);
if (null == $this->configuration) {
throw new \Exception('Configuration file contains invalid JSON.');
}
if (0 < count($this->configuration['version'])) {
$requirements = array();
foreach ($this->configuration['version'] as $version => $versionEntry) {
$requirements = array_merge($requirements, $this->getRequirements($versionEntry['require']));
}
// set folder to install requirements
if (isset($this->configuration['knowledge-directory'])) {
$folderForRequirements = $this->defaultRootFolder . $this->configuration['knowledge-directory'] . '/';
} else {
$folderForRequirements = $this->defaultRootFolder . 'knowledge/';
}
// if there are requirements to install, create knowledge directory first
if (0 < count($requirements) && false == file_exists($folderForRequirements)) {
$fileObject = new File($folderForRequirements);
$fileObject->mkdirs();
}
$nodeUtils = new NodeUtils();
$curl = new Curl();
$curl->setOpt(CURLOPT_ENCODING, 'gzip');
$curl->setOpt(CURLOPT_FOLLOWLOCATION, true);
foreach ($requirements as $name => $requirement) {
// if a valid local file was given
if (file_exists($requirement['file'])) {
$fileObject = new File($requirement['file']);
$fileObject->copy($targetPath);
// if a valid URL was given
} elseif ($nodeUtils->simpleCheckURI($requirement['file'])) {
// split name to be able to create all folders
$name = explode('/', $name);
$vendor = $name[0];
$project = $name[1];
// remove all maybe existing files
if (file_exists($folderForRequirements . $vendor . '/' . $project . '.ttl')) {
$fileObject = new File($folderForRequirements . $vendor . '/' . $project . '.ttl');
$fileObject->delete();
}
if (false == file_exists($folderForRequirements . $vendor)) {
$fileObject = new File($folderForRequirements . $vendor);
$fileObject->mkdirs();
}
echo PHP_EOL . '- Download ' . $vendor . '/' . $project;
if (isset($requirement['file-format'])) {
$fileFormat = $requirement['file-format'];
} else {
$fileFormat = $this->getFileFormat($requirement['file']);
}
if (null !== $fileFormat) {
$curl->download($requirement['file'], $folderForRequirements . $vendor . '/' . $project . '.' . $fileFormat);
if ('xml' == $fileFormat) {
$fileFormatForParsing = 'rdf-xml';
} elseif ('ttl' == $fileFormat) {
$fileFormatForParsing = 'turtle';
} elseif ('n3' == $fileFormat || 'nt' == $fileFormat) {
$fileFormatForParsing = 'n-triples';
} else {
$fileFormatForParsing = $fileFormat;
}
if (isset($this->configuration['target-file-serialization']) && $this->configuration['target-file-serialization'] != $fileFormatForParsing) {
// get parser suiteable for the given file format
$parserFactory = new ParserFactory(new NodeFactoryImpl(), new StatementFactoryImpl());
$parser = $parserFactory->createParserFor($fileFormatForParsing);
if (null == $parser) {
echo ' - Unknown file format given: ' . $fileFormatForParsing . '; Leaving file at : ' . $fileFormat;
continue;
}
// parse file content and transform it into a statement
$statementIterator = $parser->parseStreamToIterator($folderForRequirements . $vendor . '/' . $project . '.' . $fileFormat);
/* go through iterator and output the first few statements
$i = 0;
foreach ($statementIterator as $statement) {
echo (string)$statement->getSubject()
. ' ' . (string)$statement->getPredicate()
. ' ' . (string)$statement->getObject()
. PHP_EOL;
if ($i++ == 10) { break; }
}
continue;*/
// get serializer for target file format
$serializerFactory = new SerializerFactory(new NodeFactoryImpl(), new StatementFactoryImpl());
$targetFormatForSerialization = $this->configuration['target-file-serialization'];
if ('rdf-xml' == $targetFormatForSerialization) {
$serializedFileFormat = 'xml';
} elseif ('turtle' == $targetFormatForSerialization) {
$serializedFileFormat = 'ttl';
} elseif ('n-triples' == $targetFormatForSerialization) {
$serializedFileFormat = 'n3';
} else {
$serializedFileFormat = $targetFormatForSerialization;
//.........这里部分代码省略.........