{"id":36410121,"url":"https://github.com/eser/scabbia2-helpers","last_synced_at":"2026-01-13T23:25:04.914Z","repository":{"id":56979262,"uuid":"42077783","full_name":"eser/scabbia2-helpers","owner":"eser","description":"Scabbia2 Helpers Component","archived":true,"fork":false,"pushed_at":"2016-01-03T18:15:08.000Z","size":42,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-11T18:27:13.056Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-07T22:43:17.000Z","updated_at":"2023-08-22T18:28:09.000Z","dependencies_parsed_at":"2022-08-21T11:50:31.933Z","dependency_job_id":null,"html_url":"https://github.com/eser/scabbia2-helpers","commit_stats":null,"previous_names":["eser/scabbia2-helpers","eserozvataf/scabbia2-helpers"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/eser/scabbia2-helpers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fscabbia2-helpers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fscabbia2-helpers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fscabbia2-helpers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fscabbia2-helpers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eser","download_url":"https://codeload.github.com/eser/scabbia2-helpers/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fscabbia2-helpers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28404612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T21:51:37.118Z","status":"ssl_error","status_checked_at":"2026-01-13T21:45:14.585Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-11T16:51:26.080Z","updated_at":"2026-01-13T23:25:04.909Z","avatar_url":"https://github.com/eser.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Scabbia2 Helpers Component\n\n[This component](https://github.com/eserozvataf/scabbia2-helpers) is the swiss knife for rest of the scabbia2 components. Includes most commonly used helper methods filed under `Arrays`, `Date`, `FileSystem`, `Html`, `Runtime` and `String` static classes.\n\n[![Build Status](https://travis-ci.org/eserozvataf/scabbia2-helpers.png?branch=master)](https://travis-ci.org/eserozvataf/scabbia2-helpers)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/eserozvataf/scabbia2-helpers/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/eserozvataf/scabbia2-helpers/?branch=master)\n[![Total Downloads](https://poser.pugx.org/eserozvataf/scabbia2-helpers/downloads.png)](https://packagist.org/packages/eserozvataf/scabbia2-helpers)\n[![Latest Stable Version](https://poser.pugx.org/eserozvataf/scabbia2-helpers/v/stable)](https://packagist.org/packages/eserozvataf/scabbia2-helpers)\n[![Latest Unstable Version](https://poser.pugx.org/eserozvataf/scabbia2-helpers/v/unstable)](https://packagist.org/packages/eserozvataf/scabbia2-helpers)\n[![Documentation Status](https://readthedocs.org/projects/scabbia2-documentation/badge/?version=latest)](https://readthedocs.org/projects/scabbia2-documentation)\n\n## Usage\n\n### Arrays\n\n```php\nuse Scabbia\\Helpers\\Arrays;\n\n$output = Arrays::flat(['a', ['b', 'c']]);\n// $output == ['a', 'b', 'c']\n\n$output = Arrays::getFirst(['a', 'b']);\n// $output == 'a'\n\n$output = Arrays::get(['a' =\u003e '1', 'b' =\u003e '2'], 'b');\n// $output == '2'\n\n$output = Arrays::getArray(['a' =\u003e '1', 'b' =\u003e '2', 'c' =\u003e '3'], 'a', 'c', 'd');\n// $output == ['a' =\u003e '1', 'c' =\u003e '3', 'd' =\u003e null];\n\n$output = Arrays::getPath(['a' =\u003e ['b' =\u003e ['c' =\u003e 5]]], 'a/b/c');\n// $output == 5\n\n$output = Arrays::getArrayPath(['a' =\u003e ['b' =\u003e ['c' =\u003e 5, 'd' =\u003e 6]]], 'a/b/c', 'a/b/d', 'a/b/e');\n// $output == ['a/b/c' =\u003e 5, 'a/b/d' =\u003e 6, 'a/b/e' =\u003e null];\n\n$output = Arrays::getRandom(['a', 'b', 'c']);\n// $output == 'c'\n\n$output = Arrays::range(1, 5);\n// $output == [1, 2, 3, 4, 5]\n\n$output = Arrays::sortByKey([\n    ['i' =\u003e 5],\n    ['i' =\u003e 2],\n    ['i' =\u003e 4]\n], 'i');\n// $output == [['i' =\u003e 2], ['i' =\u003e 4], ['i' =\u003e 5]]\n\n$output = Arrays::categorize([\n    ['t' =\u003e 'a', 'i' =\u003e 5],\n    ['t' =\u003e 'b', 'i' =\u003e 2],\n    ['t' =\u003e 'a', 'i' =\u003e 4]\n], 't');\n// $output == [\n//     'a' =\u003e [['t' =\u003e 'a', 'i' =\u003e 5], ['t' =\u003e 'a', 'i' =\u003e 4]],\n//     'b' =\u003e [['t' =\u003e 'b', 'i' =\u003e 2]],\n// ]\n\n$output = Arrays::assignKeys([\n    ['i' =\u003e 5],\n    ['i' =\u003e 2],\n    ['i' =\u003e 4]\n], 'i');\n// $output == [5 =\u003e ['i' =\u003e 5], 2 =\u003e ['i' =\u003e 2], 4 =\u003e ['i' =\u003e 4]]\n\n$output = Arrays::column([\n    ['i' =\u003e 5],\n    ['i' =\u003e 2],\n    ['i' =\u003e 4]\n], 'i');\n// $output == [5, 2, 4]\n\n$output = Arrays::columns([\n    ['i' =\u003e 5, 'j' =\u003e 6, 'k' =\u003e 7],\n    ['i' =\u003e 2, 'j' =\u003e 3, 'k' =\u003e 4],\n    ['i' =\u003e 4, 'j' =\u003e 5, 'k' =\u003e 6]\n], 'i', 'k');\n// $output == [\n//     ['i' =\u003e 5, 'k' =\u003e 7],\n//     ['i' =\u003e 2, 'k' =\u003e 4],\n//     ['i' =\u003e 4, 'k' =\u003e 6]\n// ]\n\n$output = Arrays::getRow([\n    ['i' =\u003e 5, 'j' =\u003e 6, 'k' =\u003e 7],\n    ['i' =\u003e 2, 'j' =\u003e 3, 'k' =\u003e 4],\n    ['i' =\u003e 5, 'j' =\u003e 5, 'k' =\u003e 6]\n], 'i', 5);\n// $output == ['i' =\u003e 5, 'j' =\u003e 6, 'k' =\u003e 7]\n\n$output = Arrays::getRowKey([\n    'a' =\u003e ['i' =\u003e 5, 'j' =\u003e 6, 'k' =\u003e 7],\n    'b' =\u003e ['i' =\u003e 2, 'j' =\u003e 3, 'k' =\u003e 4],\n    'c' =\u003e ['i' =\u003e 5, 'j' =\u003e 5, 'k' =\u003e 6]\n], 'i', 5);\n// $output == 'a'\n\n$output = Arrays::getRows([\n    ['i' =\u003e 5, 'j' =\u003e 6, 'k' =\u003e 7],\n    ['i' =\u003e 2, 'j' =\u003e 3, 'k' =\u003e 4],\n    ['i' =\u003e 5, 'j' =\u003e 5, 'k' =\u003e 6]\n], 'i', 5);\n// $output == [\n//     ['i' =\u003e 5, 'j' =\u003e 6, 'k' =\u003e 7],\n//     ['i' =\u003e 5, 'j' =\u003e 5, 'k' =\u003e 6]\n// ]\n\n$output = Arrays::getRowsBut([\n    ['i' =\u003e 5, 'j' =\u003e 6, 'k' =\u003e 7],\n    ['i' =\u003e 2, 'j' =\u003e 3, 'k' =\u003e 4],\n    ['i' =\u003e 5, 'j' =\u003e 5, 'k' =\u003e 6]\n], 'i', 5);\n// $output == [\n//     ['i' =\u003e 2, 'j' =\u003e 3, 'k' =\u003e 4]\n// ]\n\n$output = Arrays::combine(\n    ['a', 'b', 'c'],\n    [1, 2]\n);\n// $output == ['a' =\u003e 1, 'b' =\u003e 2, 'c' =\u003e null]\n\n$output = Arrays::sortByPriority([\n    'second' =\u003e 221,\n    'forth' =\u003e 444,\n    'third' =\u003e 727,\n    'first' =\u003e 878\n], ['first', 'second']);\n// $output == ['first' =\u003e 878, 'second' =\u003e 221, 'forth' =\u003e 444, 'third' =\u003e 727]\n```\n\n### String\n\n```php\nuse Scabbia\\Helpers\\String;\n\n$output = String::getEncoding();\n// $output == 'utf8'\n\n$output = String::coalesce($_GET['x'], '5');\n// $output == '5'\n\n$output = String::prefixLines(\"line 1\\nline 2\", '- ');\n// $output == \"- line 1\\n- line 2\"\n\n$output = String::filter('1', String::FILTER_SANITIZE_BOOLEAN);\n// $output == true\n\n$output = String::format('value: {val}', ['val' =\u003e 5]);\n// $output == 'value: 5'\n\nString::vardump($_GLOBALS);\n// echoes all globals in html format\n\n$output = String::hash('scabbia test');\n// $output == \u003chex encoded strong crc hash\u003e\n\n$output = String::generatePassword(5);\n// $output == 'trawr'\n\n$output = String::generateUuid();\n// $output == '644e1dd7-2a7f-18fb-b8ed-ed78c3f92c2b'\n\n$output = String::generate(6, 'abcdef');\n// $output == 'efdabb'\n\n$output = String::xss('\u003calert=\"test');\n// $output == '\u0026#60;alert=\u0026#34;test'\n\n$output = String::strip('eser', 'er');\n// $output == 'eer';\n\n$output = String::squote('test\\'ed');\n// $output == 'test\\\\\\'ed'\n\n$output = String::dquote('scabbia \"php\" components', true);\n// $output == '\"scabbia \\\"php\\\" components\"'\n\n$output = String::replaceBreaks(\"eser\\nozvataf\", '\u003cbr /\u003e');\n// $output == 'eser\u003cbr /\u003eozvataf'\n\n$output = String::cut('testing', 4, '...');\n// $output == 'test...'\n\n$output = String::encodeHtml('\u003cstrong\u003eeser \u0026 ozvataf\u003c/strong\u003e');\n// $output == '\u0026lt;strong\u0026gt;eser \u0026amp; ozvataf\u0026lt;/strong\u0026gt;'\n\n$output = String::decodeHtml('\u0026lt;strong\u0026gt;eser \u0026amp; ozvataf\u0026lt;/strong\u0026gt;');\n// $output == '\u003cstrong\u003eeser \u0026 ozvataf\u003c/strong\u003e'\n\n$output = String::toLower('ESER ÖZVATAF');\n// $output == 'eser özvataf'\n\n$output = String::toUpper('eser özvataf');\n// $output == 'ESER ÖZVATAF'\n\n$output = String::capitalize('eser özvataf');\n// $output == 'Eser özvataf'\n\n$output = String::capitalizeWords('eser özvataf');\n// $output == 'Eser Özvataf'\n\n$output = String::length('eser özvataf');\n// $output == 12\n\n$output = String::startsWith('eser özvataf', 'eser');\n// $output == true\n\n$output = String::endsWith('eser özvataf', 'özvataf');\n// $output == true\n\n$output = String::substr('eser özvataf', 2, 2);\n// $output == 'er'\n\n$output = String::strpos('eser özvataf', 'er');\n// $output == 2\n\n$output = String::strstr('eser@ozvataf.com', '@');\n// $output == '@ozvataf.com'\n\n$output = String::sizeCalc(2048);\n// $output == '2K'\n\n$output = String::quantityCalc(5000000);\n// $output == '5M'\n\n$output = String::timeCalc(120);\n// $output == '2m'\n\n$output = String::removeAccent('eser özvataf');\n// $output == 'eser ozvataf'\n\n$output = String::removeInvisibles(\"eser\\0 özvataf\");\n// $output == 'eser özvataf'\n\n$output = String::slug(\"eser\\0 özvataf\");\n// $output == 'eser-ozvataf'\n\n$output = String::ordinalize(3);\n// $output == '3rd'\n\n$output = String::sanitizeFilename('eser*d.txt');\n// $output == 'eser_d.txt'\n\n$output = String::matchPaths(['/src', '/tests'], '\\\\tests\\\\notCompleted');\n// $output == true\n\n$output = String::convertLinks('my homepage is http://eser.ozvataf.com/', function ($url) { return '[' . $url . '](' . $url . ')'; });\n// $output == 'my homepage is [http://eser.ozvataf.com/](http://eser.ozvataf.com/)'\n```\n\n## Links\n- [List of All Scabbia2 Components](https://github.com/eserozvataf/scabbia2)\n- [Documentation](https://readthedocs.org/projects/scabbia2-documentation)\n- [Twitter](https://twitter.com/eserozvataf)\n- [Contributor List](contributors.md)\n- [License Information](LICENSE)\n\n\n## Contributing\nIt is publicly open for any contribution. Bugfixes, new features and extra modules are welcome. All contributions should be filed on the [eserozvataf/scabbia2-helpers](https://github.com/eserozvataf/scabbia2-helpers) repository.\n\n* To contribute to code: Fork the repo, push your changes to your fork, and submit a pull request.\n* To report a bug: If something does not work, please report it using GitHub issues.\n* To support: [![Donate](https://img.shields.io/gratipay/eserozvataf.svg)](https://gratipay.com/eserozvataf/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feser%2Fscabbia2-helpers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feser%2Fscabbia2-helpers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feser%2Fscabbia2-helpers/lists"}