1. Go to this page and download the library: Download snippetify/snippet-sniffer library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
snippetify / snippet-sniffer example snippets
use Snippetify\SnippetSniffer\SnippetSniffer;
// Configurations
$config = [
// Required
// Search engine api configuration keys
'provider' => [
"cx" => "your google Search engine ID",
"key" => "your google API key"
'name' => 'provider name (google)',
],
// Optional
// Useful for adding meta information to each snippet
'app' => [
"name" => "your App name",
'version' => 'your App version',
],
// Optional
// Useful for logging
'logger' => [
"name" => "logger name",
'file' => 'logger file path',
]
];
// Required
// Your query
$query = "your query";
// Optional
// Meta params
$meta = [
"page" => 1,
"limit" => 10,
];
// Fetch snippets
// @return Snippetify\SnippetSniffer\Common\Snippet[]
$snippets = SnippetSniffer::create($config)->fetch($query, $meta);
/*
* Snippet object public attributes [
* title: string,
* code: string,
* description: string,
* tags: array, // Array of string, also contains the snippet language
* meta: array
*]
*/
use Snippetify\SnippetSniffer\Providers\GoogleProvider;
// Search engine api configuration keys
$config = [
"cx" => "your google Search engine ID",
"key" => "your google API key"
];
// Your query
$query = "your query";
// Meta params
$meta = [
"page" => 1,
"limit" => 10,
];
// url seeds
// @return GuzzleHttp\Psr7\Uri[]
$urlSeeds = GoogleProvider::create($config)->fetch($query, $meta);
use Snippetify\SnippetSniffer\SnippetSniffer;
// Use Configurations
$config = [
"providers" => [
"provider_name" => ProviderClass::class,
"provider_2_name" => Provider2Class::class // You can add as many as you want
]
];
// Or use addProvider method as follow
SnippetSniffer::create(...)
->addProvider('provider_name', ProviderClass::class)
->addProvider('provider_2_name', Provider2Class::class) // You can add as many as you want
...
use GuzzleHttp\Psr7\Uri;
use Snippetify\SnippetSniffer\Scrapers\DefaultScraper;
// Configurations
$config = [
// Optional
// Useful for adding meta information to each snippet
'app' => [
"name" => "your App name",
'version' => 'your App version',
],
// Optional
// Useful for logging
'logger' => [
"name" => "logger name",
'file' => 'logger file path',
]
];
// Your url
$urlSeed = "website url to scrape";
// Fetch snippets
// @return Snippetify\SnippetSniffer\Common\Snippet[]
$snippets = (new DefaultScraper($config))->fetch(new Uri($urlSeed));
use Snippetify\SnippetSniffer\SnippetSniffer;
// Important: Scrapper's name must be the website uri without the scheme. i.e. vuejs.org
// Configurations
$config = [
"scrapers" => [
"scraper_name" => ScraperClass::class,
"scraper_2_name" => Scraper2Class::class // You can add as many as you want
]
];
// Or use addProvider method as follow
SnippetSniffer::create(...)
->addScraper('scraper_name', ScraperClass::class)
->addScraper('scraper_2_name', Scraper2Class::class) // You can add as many as you want
...
$config = [
// Required
// Search engine api configuration keys
// https://developers.google.com/custom-search/v1/introduction
'provider' => [
"cx" => "your google Search engine ID",
"key" => "your google API key"
'name' => 'provider name (google)',
],
// Optional
// Useful for adding meta information to each snippet
'app' => [
"name" => "your App name",
'version' => 'your App version',
],
// Optional
// Useful for logging
'logger' => [
"name" => "logger name",
'file' => 'logger file path',
],
// Optional
// Useful for scraping
"html_tags" => [
"snippet" => "pre[class] code, div[class] code, .highlight pre, code[class]", // Tags to fetch snippets
"index" => "h1, h2, h3, h4, h5, h6, p, li" // Tags to index
],
// Optional
// Useful for adding new scrapers
// The name must be the website host without the scheme i.e. not https://foo.com but foo.com
"scrapers" => [
"scraper_name" => ScraperClass::class,
"scraper_2_name" => Scraper2Class::class // You can add as many as you want
],
// Optional
// Useful for adding new providers
"providers" => [
"provider_name" => ProviderClass::class,
"provider_2_name" => Provider2Class::class // You can add as many as you want
],
// Optional
// Useful for web crawling
// Please follow the link below for more information as we use Spatie crawler
// https://github.com/spatie/crawler
"crawler" => [
"langs" => ['en'],
"profile" => CrawlSubdomainsAndUniqueUri::class,
"user_agent" => 'your user agent',
"concurrency" => 10,
"ignore_robots" => false,
"maximum_depth" => null,
"execute_javascript" => false,
"maximum_crawl_count" => null,
"parseable_mime_types" => 'text/html',
"maximum_response_size" => 1024 * 1024 * 3,
"delay_between_requests" => 250,
]
];
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.