{"id":13545526,"url":"https://github.com/hxseven/htmlSQL","last_synced_at":"2025-04-02T15:31:21.413Z","repository":{"id":2426740,"uuid":"3395809","full_name":"hxseven/htmlSQL","owner":"hxseven","description":"htmlSQL is a experimental PHP library which allows you to access HTML values by an SQL like syntax.","archived":true,"fork":false,"pushed_at":"2021-01-28T02:46:10.000Z","size":28,"stargazers_count":125,"open_issues_count":0,"forks_count":40,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-11-03T12:32:34.949Z","etag":null,"topics":["php","scraping","snoopy"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hxseven.png","metadata":{"files":{"readme":"README-german.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-02-09T09:28:36.000Z","updated_at":"2024-10-01T08:18:34.000Z","dependencies_parsed_at":"2022-08-28T09:41:16.384Z","dependency_job_id":null,"html_url":"https://github.com/hxseven/htmlSQL","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hxseven%2FhtmlSQL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hxseven%2FhtmlSQL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hxseven%2FhtmlSQL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hxseven%2FhtmlSQL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hxseven","download_url":"https://codeload.github.com/hxseven/htmlSQL/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246841699,"owners_count":20842633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["php","scraping","snoopy"],"created_at":"2024-08-01T11:01:04.932Z","updated_at":"2025-04-02T15:31:16.397Z","avatar_url":"https://github.com/hxseven.png","language":"PHP","readme":"﻿htmlSQL - Version 0.5\n=====================\n\nhtmlSQL ist eine experimentelle PHP Klasse mit der man auf HTML\nElemente über eine SQL ähnliche Syntax zugreifen kann. Das\nbedeutet das man nicht mehr über komplizierte Funktionen\nbestimmte Tags extrahieren muss, sondern einfach eine Query\nwie diese ausführt:\n\n    SELECT href,title   FROM  a   WHERE $class == \"liste\"\n           ^ HTML Attrib.     ^         ^ Abfrage (kann auch leer sein)\n             die zurück-      ^\n             gegeben          ^ HTML Tags die durchsucht werden sollen\n             werden sollen      \"*\" ist hier möglich = alle Tags\n\nDiese Abfrage gibt einen Array aller Links mit dem Attribut class=\"liste\"\nzurück.\n\nAlle HTTP Verbindungen in htmlSQL benützen die Snoopy Klasse\n(Package Version 1.2.3 - URL: http://sourceforge.net/projects/snoopy/).\nAllerdings wird Snoopy nicht für \"file\" oder \"string\" Queries benötigt.\nAlle Snoopy betreffenden Dokumente (z.B: Copyright-Infos, Readme, usw.)\nbefinden sich im \"snoopy_data/\" Unterordner.\n\n\nInstallation / Anwendung\n------------------------\n\nUm htmlSQL in eigenen Projekten zu benützen ist es nur notwendig die\nzwei Dateien \"snoopy.class.php\" und die \"htmlsql.class.php\" zu laden\n(mit include oder z.B. require). Danach kann htmlSQL, wie in den\nBeispielen (siehe examples/-Ordner), angesprochen werden. Dies sollte\nnicht allzu schwer sein :-)\n\n\nHintergrund / Geschichte\n------------------------\n\nIch hatte die Idee zu dieser Klasse als ich Daten von einer Web-Seite\nextrahiert habe und dabei merkte das sich die Funktionen und Quelltexte\noftmals wiederholen. Da kam mir die Idee das ganze zu vereinfachen und\neine universelle Klasse dafür zu entwickeln.\n\n\nWarnung\n-------\n\nFür die Abfragen wird die `eval()` Funktion benützt. Deshalb sollten alle\nvom Besucher abhängige Daten wie z.b. IDs geprüft oder ggf. gefiltert\nwerden da es ansonsten möglich wäre schadhaften PHP Quelltext auszuführen.\nVertraue niemals Benutzereingaben!\n\n\nTodo\n----\n\n- Den internen HTML Parser verbessern\n- Ein eigenes Query system entwickeln und nicht das PHP eigene nutzen \n  (Die eval()-Lösung ist nicht wirklich schön)\n- Mehr Fehlerprüfungen\n- Unit tests\n- LIMIT Funktion (wie in SQL)\n\n\nAnwendungsgebiete von htmlSQL\n-----------------------------\n\n- Daten von anderen Web-Seiten auslesen\n- HTML basierte Datenbanken?\n- XML Daten auslesen\n\n\nAuthor\n------\n\n- [Jonas John](http://www.jonasjohn.de/)\n\n\nLizenz\n------\n\nhtmlSQL benützt eine modifizierte BSD Lizenz, welche ziemlich offen ist.\nDer Lizenztext befindet sich in der \"htmlsql.class.php\".\n","funding_links":[],"categories":["PHP"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhxseven%2FhtmlSQL","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhxseven%2FhtmlSQL","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhxseven%2FhtmlSQL/lists"}