Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Graby Laravel Package

j0k3r/graby

Graby extracts clean article content from web pages. Built on php-readability and FiveFilters site_config patterns, it’s a composer-friendly, decoupled, fully tested fork of Full-Text RSS. Requires PHP 8.2+, Tidy and cURL.

View on GitHub
Deep Wiki
Context7
v2.5.0

Tagged a minor version just to warn you that Guzzle 5 support has been dropped.

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.4.6...v2.5.0

2.4.6

What's Changed

New Contributors

Full Changelog: https://github.com/j0k3r/graby/compare/2.4.5...2.4.6

2.4.5
2.4.4

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.4.3...2.4.4

2.4.3

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.4.2...2.4.3

2.4.2

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.4.1...2.4.2

2.4.1

Just an empty release because 2.4.0 was created on the wrong branch (master instead of 2.x). It should be fine by now.

2.4.0

Addition

If you want to extract content from a page you already fetched outside of Graby, you can call setContentAsPrefetched() before calling fetchContent(), e.g.:

use Graby\Graby;
$article = 'http://www.bbc.com/news/entertainment-arts-32547474';
$input = '<html>[...]</html>';
$graby = new Graby();
$graby->setContentAsPrefetched($input);
$result = $graby->fetchContent($article);

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.3.3...2.4.0

2.3.5

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.3.3...2.3.5

2.3.4

What's Changed

New Contributors

Full Changelog: https://github.com/j0k3r/graby/compare/2.3.3...2.3.4

2.3.3

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.3.2...2.3.3

2.3.2

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.3.1...2.3.2

2.3.1

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.3.0...2.3.1

2.3.0
  • Add support of wrap_in #262
  • Update PHP-CS-Fixer to 3.0 #263
2.2.7
  • Use new pdfparser version #259
2.2.6

Kudos to @Simounet for all these PRs 🤝

  • Fix test case with real content (bjori site updated) #257
  • Case where an attribute is empty overriding a filled in value #255
  • Fix wrong URL exception handling #256
2.2.5
  • Fix and refactor makeAbsoluteStr #249
  • Update CS-Fixer #250
  • ContentExtractor: fix handling of data-srcset #248
  • Rebuild siteconfig if host for singlepage is not the same #246
2.2.4
  • Fix CS issues (following PHP CS Fixer update) #243
  • Allow new patch/fix from PDFParser #247
v2.2.3
  • Fix the way to detect a request factory #238
  • Test Guzzle7 #239
  • Ditch Travis to use GitHub Actions #241
  • Improve Composer install in GitHub Actions #242
2.2.2
  • Cast date_parse result #233
  • Use new Scrutinizer engine #234
  • Allow installing smalot/pdfparser newer version #235
2.2.1
  • Add support for Monolog v2 #230
  • Define lowest working deps #231
2.2.0
  • Remove wallabag's fork of tcpdf (it wasn't used) #225
  • Handle error using preg_* function when html is really too big #226
  • Add support for refresh header #227
  • Cleanup Travis #228
  • Allow Symfony 5 installation #229
2.1.1
  • Lock to PHPUnit 7 #220
  • Handle meta refresh url when attributes are reversed #221
2.1.0

Graby got a logo!

🎉 Thanks to @caneco, Graby has a logo! 🎉

Formatted date

This release include a fix for date. Before, we validated a date and if the date wasn't valid, we return null. Now, if the date is valid, we return it as a W3C formatted date: Y-m-d\TH:i:sP.

List of PR merged

  • Fix tests #213
  • Fix typo #215
  • Convert date to a known format #216
  • Add brand new logo to the project #214
  • JSON LD multiple authors #218
  • Improve readme with logo & credits #217
2.0.2
  • Enable inferPrivatePropertyTypeFromConstructor on PHPStan #208
  • Add data-srcset as lazyload attributes #209
2.0.1
  • Applied some changes from Full-Text RSS #206
  • Change the way to merge config for find & replace string #207
2.0.0

:sparkles: Major changes :sparkles:

The 2.0 started almost 2 years ago on an initiative of @aaa2000 :clap: to add support for HTTPlug.

The 1.x was coupled to Guzzle 5 which is quite old now and some people started to complain about how coupled it was. It was obvious that the best solution was to switch to HTTPlug to let the final user decide which HTTP client to use.

The 2.0.0 is tested using these clients:

  • Guzzle 6
  • Guzzle 5
  • cURL

There are many more available HTTP client which should work too.

Other changes are:

  • dropping support PHP < 7.1
  • Tidy extension is now required
  • enable PHPStan level 7
  • open graph & json-ld are fetched first, information from the html overide them

If you want to upgrade, follow these steps.

Finally, huge thanks to @aaa2000 to have started the work 2 years ago. Also thanks to @jtojnar for helping me on that release.

1.20.1
  • Logger infos added for JsonLd parsing #203
1.20.0
  • Fix tests on multipage (clubic) #202
  • Add support of referrerpolicy for img tags #201
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
croct/coding-standard
croct/plug-php
nqxcode/phpmorphy
boundwize/pyrameter
testo/facade
headercat/phpstan-extension-ide-helper
yosymfony/parser-utils
innmind/black-box
babenkoivan/elastic-migrations
babenkoivan/elastic-adapter
develia/commons
dmstr/symfony-system-resources-bundle
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
renatomarinho/laravel-page-speed
develia/geo-bundle
austinheap/laravel-database-encryption
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle