PHP code example of sebastiansulinski / path-extractor
1. Go to this page and download the library: Download sebastiansulinski/path-extractor 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/ */
sebastiansulinski / path-extractor example snippets
use SSD\PathExtractor\Extractor;
$extractor = new Extractor;
$extractor = new Extractor($html);
$extractor = Extractor::make();
$extractor = Extractor::make($html);
$extractor = new Extractor;
$extractor->for($html);
use \SSD\PathExtractor\Tags\Image;
$html = '<img src="/media/image.jpg" alt="My image">';
$html = .'<img src="/media/image2.png" alt="My image 2">';
$images = Extractor::make($html)->extract(Image::class);
use \SSD\PathExtractor\Tags\Anchor;
$html = '<a href="/media/files/one.pdf" target="_blank">Document one</a>';
$html = .'<a href="/media/files/two.docx" title="Word document">Word document</a>';
$anchors = Extractor::make($html)->extract(Anchor::class);
use \SSD\PathExtractor\Tags\Script;
$html = '<script src="/media/script/one.js" async></script>';
$html = .'<script src="/media/script/two.js" async defer></script>';
$html = .'<script src="/media/script/three.js"></script>';
$scripts = Extractor::make($html)->extract(Script::class);
$images = Extractor::make($html)->withExtensions('jpg')->extract(Image::class);
$anchors = Extractor::make($html)->withExtensions(['pdf', 'docx'])->extract(Anchor::class);
$anchors = Extractor::make($html)->withExtensions('pdf', 'docx')->extract(Anchor::class);
$html = '<img src="/media/image.jpg" alt="My image">';
$html .= '<img src="https://ssdtutorials.com/media/image2.jpg" alt="My image 2">';
$images = Extractor::make($html)->withUrl('https://mywebsite.com')->extract(Image::class);
[
'clean' => 'yes',
'output-html' => 'yes',
'wrap' => 0,
]
\SSD\PathExtractor\Tags\Anchor
- href
- target
- title
- rel
- nodeValue (represents text in between opening and closing a tag)
\SSD\PathExtractor\Tags\Image
- src
- alt
- width
- height
\SSD\PathExtractor\Tags\Script
- src
- type
- charset
- async
- defer
\SSD\PathExtractor\Tags\Link
- href
- type
- rel
$html = '<img src="/media/image.jpg" alt="My image">';
$html = .'<img src="/media/image2.png" alt="My image 2">';
$tag1 = (string)Extractor::make($html)->withExtensions('jpg')->extract(Image::class)[0];
$tag2 = Extractor::make($html)->withExtensions('jpg')->extract(Image::class)[0]->tag();
<img src="/media/image.jpg" alt="My image">
Extractor::make($html)->withExtensions('jpg')->extract(Image::class)[0]->toArray()
use SSD\PathExtractor\Tags\Tag;
use SSD\PathExtractor\Tags\Type;
class Link extends Tag
{
/**
* Get tag name.
*
* @return string
*/
static public function tagName(): string
{
return 'link';
}
/**
* Get path attribute.
*
* @return string
*/
static public function pathAttribute(): string
{
return 'href';
}
/**
* Get available attributes.
*
* @return array
*/
static public function availableAttributes(): array
{
return [
'href' => Type::STRING,
'type' => Type::STRING,
'rel' => Type::STRING,
];
}
/**
* Get formatted tag.
*
* @return string
*/
public function tag(): string
{
return '<link'.$this->tagAttributes('href', 'type', 'rel').'>';
}
}
$string = '<img src="/media/image/one.jpg" alt="Image one">';
$string .= '<img src="https://mysite.com/media/image/two.jpg" alt="Image two">';
$string .= '<a href="/media/files/two.pdf" '.
'target="_blank" title="Document">Document</a>';
$string .= '<script src="/media/script/three.js" async></script>';
$string .= '<link href="/media/link/three.css" rel="stylesheet">';
$extractor = Extractor::make($string);
$images = array_map(function (Tag $tag) {
return $tag->path();
}, $extractor->extract(Image::class));
$anchors = array_map(function (Tag $tag) {
return $tag->path();
}, $extractor->extract(Anchor::class));
$scripts = array_map(function (Tag $tag) {
return $tag->path();
}, $extractor->extract(Script::class));
$links = array_map(function (Tag $tag) {
return $tag->path();
}, $extractor->extract(Link::class));
$this->assertEquals([
'/media/image/one.jpg',
'https://mysite.com/media/image/two.jpg',
'/media/files/two.pdf',
'/media/script/three.js',
'/media/link/three.css',
], array_merge($images, $anchors, $scripts, $links));