diff --git a/global.ent b/global.ent
new file mode 100644
index 000000000..1b2a2903e
--- /dev/null
+++ b/global.ent
@@ -0,0 +1,673 @@
+
+
+
+
+
+http://www.7-zip.org/
+http://www.adabas.com/
+http://www.adobe.com/products/acrobat/readstep2.html
+http://httpd.apache.org/
+http://httpd.apache.org/docs/current/dso.html
+http://httpd.apache.org/docs/current/
+http://httpd.apache.org/docs/current/mpm.html
+http://httpd.apache.org/docs/current/platform/windows.html
+http://httpd.apache.org/docs/current/howto/cgi.html
+http://httpd.apache.org/download.cgi
+http://httpd.apache.org/docs/current/mod/core.html
+http://httpd.apache.org/mod_fcgid/
+
+https://www.apachelounge.com
+https://www.apachelounge.com/download/
+https://github.com/php/pecl-caching-apc/blob/master/TECHNOTES.txt
+https://pecl.php.net/apcu_bc
+https://pecl.php.net/apd
+https://packages.debian.org/index
+http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2
+https://github.com/ramsey/array_column/blob/master/src/array_column.php
+https://www.man7.org/linux/man-pages/man7/ascii.7.html
+http://aspell.net/
+https://www.oracle.com/database/berkeley-db/db.html
+http://www.gnu.org/software/bison/bison.html
+http://www.blueshoes.org/en/developer/php_cheat_sheet/
+http://browscap.org/
+https://www.sourceware.org/bzip2/
+http://www.fourmilab.ch/documents/calendar/
+http://www.hermetic.ch/cal_stud/jdn.htm
+http://creativecommons.org/licenses/by/3.0/
+http://www.cert.org/advisories/CA-1996-11.html
+http://cr.yp.to/cdb.html
+http://www.microsoft.com/download/en/details.aspx?id=21138
+http://www.helpware.net/
+http://msdn.microsoft.com/workshop/author/hta/hta_node_entry.asp
+http://www.winwriters.com/mshelp.htm
+http://www.unicode.org/cldr/
+http://aws.amazon.com/ec2/
+http://aws.amazon.com/sdkforphp/
+https://getcomposer.org/
+https://docs.microsoft.com/windows/desktop/com/component-object-model--com--portal
+https://docs.microsoft.com/dotnet/api/system.runtime.interopservices.comvisibleattribute
+http://www.connectionstrings.com/
+http://people.redhat.com/drepper/SHA-crypt.txt
+https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator
+https://msdn.microsoft.com/en-us/library/windows/desktop/aa379942(v=vs.85).aspx
+https://docs.microsoft.com/en-us/windows/desktop/SecCNG/cng-portal
+http://man7.org/linux/man-pages/man2/getrandom.2.html
+https://github.com/paragonie/random_compat
+http://www.cubrid.org/
+http://www.cubrid.org/documentation/
+http://curl.haxx.se/
+http://curl.haxx.se/libcurl/c/libcurl-errors.html
+http://cyrusimap.org/
+http://www.php-debugger.com/dbg/
+http://technet.microsoft.com/en-us/sysinternals/bb896647
+http://www.debian.org/
+http://unicode.org/reports/tr36/#Deletion_of_Noncharacters
+http://derickrethans.nl/php_references_article.php
+http://mathworld.wolfram.com/DiophantineEquation.html
+http://dmalloc.com/
+http://www.oasis-open.org/docbook/xml/
+http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/introduction.html#ID-Conformance
+http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html
+http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-637646024
+http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-FF21A306
+http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1728279322
+http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-i-Document
+http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1950641247
+http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-536297177
+http://www.w3.org/TR/REC-html40/interact/forms.html#adef-accept-charset
+http://software.schmorp.de/pkg/libeio.html
+https://www.oreilly.com/library/view/programming-internet-email/9780596802585/
+http://www.abisource.com/projects/enchant/
+http://exif.org/Exif2-2.PDF
+http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html
+https://libexpat.github.io/
+https://sourceforge.net/projects/expat/
+http://expect.nist.gov/
+https://gitlab.gnome.org/GNOME/libxslt/-/wikis/home
+http://www.au.kddi.com/english/service/ezweb/index.html
+http://leenissen.dk/fann/wp/
+https://github.com/bukka/php-fann
+http://www.frontbase.com/
+http://www.frontbase.com/cgi-bin/WebObjects/FBWebSite.woa
+http://www.firebirdsql.org/
+http://www.gnu.org/software/flex/flex.html
+http://floating-point-gui.de/
+http://foldoc.org/
+http://www.freetds.org/
+http://www.freetype.org/
+https://pages.cs.wisc.edu/~cymen/misc/interests/Bacon01Concurrent.pdf
+http://www.libgd.org/
+https://ftp.gnu.org/pub/gnu/gdbm/
+http://gearman.org
+http://gearman.org/getting-started/
+http://www.gnu.org/software/gettext/gettext.html
+http://www.gnu.org/software/gettext/manual/gettext.html
+https://github.com/
+http://ftp.gnome.org/pub/gnome/sources/glib/
+http://ftp.gnome.org/pub/gnome/binaries/win32/glib/
+http://valokuva.org/magick/
+http://www.graphicsmagick.org/FAQ.html#how-does-graphicsmagick-differ-from-imagemagick
+http://gmplib.org/#DOWNLOAD
+http://gnochm.sourceforge.net/
+https://www.gnu.org/software/autoconf/autoconf.html
+http://www.airs.com/ian/configure/
+https://www.gnu.org/software/make/make.html
+http://www.gnupg.org/
+http://www.gnupg.org/related_software/gpgme/
+https://csrc.nist.gov/projects/hash-functions
+http://software.hp.com/
+http://www.tekwire.net/joomla/building/apache/http-hpux-11-11
+http://www.iana.org/assignments/language-subtag-registry
+http://www.embarcadero.com/products/interbase
+https://www.ibm.com/developerworks/downloads/im/db2express/index.html
+http://www-306.ibm.com/software/data/db2/
+http://www.ibm.com/software/data/db2/ad
+http://www.ibm.com/software/data/db2/db2connect
+https://unicode-org.github.io/icu/userguide/icu_data/
+https://unicode-org.github.io/icu/userguide/format_parse/datetime/
+https://icu.unicode.org/docs/
+https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classChoiceFormat.html
+https://unicode-org.github.io/icu-docs/apidoc/dev/icu4c/udat_8h.html
+https://unicode-org.github.io/icu/userguide/format_parse/datetime/#datetime-format-syntax
+https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classDecimalFormat.html
+https://unicode-org.github.io/icu/userguide/format_parse/numbers/
+https://unicode-org.github.io/icu/userguide/format_parse/messages/
+https://unicode-org.github.io/icu/userguide/format_parse/
+https://icu.unicode.org/
+https://unicode-org.github.io/icu/userguide/locale/
+https://unicode-org.github.io/icu-docs/apidoc/dev/icu4c/uloc_8h.html
+https://icu4c-demos.unicode.org/icu-bin/locexp
+https://unicode-org.github.io/icu/userguide/format_parse/messages/
+https://unicode-org.github.io/icu/userguide/transforms/normalization/
+https://unicode-org.github.io/icu-docs/apidoc/dev/icu4c/unorm_8h.html
+https://unicode-org.github.io/icu/userguide/locale/resources.html
+https://unicode-org.github.io/icu/userguide/format_parse/numbers/rbnf.html
+https://www.iana.org/time-zones
+https://unicode-org.github.io/icu/userguide/
+https://www.unicode.org/reports/tr10/
+https://unicode-org.github.io/icu-docs/apidoc/dev/icu4c/umsg_8h.html#a0a5ea3090b5b7f3fa5fa376a5d68cb32
+https://unicode-org.github.io/icu/userguide/format_parse/messages/#quotingescaping
+https://unicode-org.github.io/icu/userguide/boundaryanalysis/break-rules.html
+https://github.com/igbinary/igbinary
+http://support.microsoft.com/kb/q160422/
+http://www.iis.net/extensions/fastcgi
+http://learn.iis.net/page.aspx/248/configuring-fastcgi-extension-for-iis-60/
+http://www.imagemagick.org/
+http://www.imagemagick.org/Usage/color_mods/#sigmoidal
+http://www.imagemagick.org/Usage/transform/#function
+https://github.com/uw-imap/imap
+http://oreilly.com/catalog/9780596000127/
+http://www.nttdocomo.com/services/imode/
+https://www.ibm.com/docs/en/informix-servers/14.10?topic=sources-connection-string-keywords-that-make-connection
+https://www.ibm.com/support/pages/download-informix-products
+https://www.ibm.com/docs/en/informix-servers/14.10?topic=guide-configure-data-sources
+http://esd.ingres.com/
+http://esd.ingres.com/product/drivers/PHP/
+http://community.ingres.com/wiki/
+https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options#Restrict_mprotect()
+https://en.wikipedia.org/wiki/W^X
+https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2
+http://wikipedia.org/wiki/List_of_AMP_packages
+http://www.iodbc.org/
+http://ps-2.kev009.com/wisclibrary/aix52/usr/share/man/info/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm
+http://www.iptc.org/
+http://www.loc.gov/standards/iso639-2/php/code_list.php
+http://en.wikipedia.org/wiki/Iso8601#Durations
+http://en.wikipedia.org/wiki/Iso8601#Repeating_intervals
+http://primes.utm.edu/glossary/page.php?sort=JacobiSymbol
+http://www.ijg.org/
+http://www.json.org/
+https://github.com/P-H-C/phc-winner-argon2
+http://libevent.org/
+http://software.schmorp.de/pkg/libev.html
+https://wiki.mozilla.org/Directory
+https://wiki.mozilla.org/LDAP_C_SDK
+https://wiki.mozilla.org/Mozilla_LDAP_SDK_Programmer%27s_Guide
+https://wiki.mozilla.org/Mozilla_LDAP_SDK_Programmer%27s_Guide/Searching_the_Directory_With_LDAP_C_SDK
+http://www.bind9.net/download-openldap/
+http://www.openldap.org/
+https://www.openldap.org/software/download/
+http://www.openldap.org/devel/cvsweb.cgi/~checkout~/doc/drafts/draft-ietf-ldapext-ldap-c-api-xx.txt
+http://www.thrysoee.dk/editline/
+https://sourceware.org/libffi/
+http://www.gnu.org/software/libiconv/
+http://oldhome.schmorp.de/marc/liblzf.html
+https://libsodium.org/
+https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home
+https://gnome.pages.gitlab.gnome.org/libxml2/devhelp/libxml2-xmlerror.html
+https://gitlab.gnome.org/GNOME/libxslt/-/wikis/home
+http://libssh2.org/
+http://www.libpng.org/pub/png/libpng.html
+http://www.freebsd.org/cgi/man.cgi?query=libradius
+http://www.freebsd.org/cgi/man.cgi?query=radius.conf
+http://www.ibiblio.org/pub/Linux/libs/X/!INDEX.html
+https://libzip.org/
+http://trac.lighttpd.net/trac/
+https://symas.com/lmdb/
+http://www.lua.org/
+http://www.finkproject.org/
+https://github.com/Homebrew/brew
+http://www.macports.org/
+http://php-osx.liip.ch/
+http://www.mariadb.org/
+http://www.maxmind.com/
+http://www.maxmind.com/app/fips10_4
+http://www.maxmind.com/app/c
+http://www.maxmind.com/en/iso3166
+http://mcrypt.sourceforge.net/
+http://www.ciphersbyritter.com/GLOSSARY.HTM#IV
+http://www.quadibloc.com/crypto/co0409.htm
+http://libmemcached.org/libMemcached.html
+https://github.com/memcached/memcached/blob/master/doc/protocol.txt
+http://www.memcached.org/
+http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html
+http://mhash.sourceforge.net/
+https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-controlservice
+https://docs.microsoft.com/en-us/windows/desktop/debug/system-error-codes
+https://visualstudio.microsoft.com/downloads/#microsoft-visual-c-redistributable-for-visual-studio-2022
+https://www.php.net/mirrors.php
+php-general+subscribe@lists.php.net
+php-general+unsubscribe@lists.php.net
+http://www.ossp.org/pkg/lib/mm/
+
+https://github.com/mongodb/mongo-php-driver
+https://github.com/mongodb/mongo-php-library
+https://github.com/mongodb/mongo-hhvm-driver
+https://jira.mongodb.org/browse/PHPC
+https://jira.mongodb.org/browse/PHPLIB
+https://jira.mongodb.org/browse/HHVM
+https://github.com/mongodb/mongo-hhvm-driver/releases
+https://getcomposer.org/
+https://github.com/mongodb/mongo-c-driver/tree/master/src/libbson
+https://github.com/mongodb/mongo-php-library
+https://www.mongodb.com/docs/php-library/current/
+https://www.mongodb.com/docs/php-library/master/reference
+https://github.com/mongodb/mongo-c-driver
+https://github.com/mongodb/libmongocrypt
+https://www.mongodb.com/docs/manual/reference/glossary/
+https://github.com/doctrine/mongodb
+https://github.com/doctrine/mongodb-odm
+https://www.mongodb.com/docs/drivers/
+https://github.com/mongodb/specifications
+https://github.com/mongodb/specifications/blob/master/source/extended-json/extended-json.md
+https://github.com/mongodb/specifications/blob/master/source/crud/crud.md
+https://github.com/mongodb/specifications/blob/master/source/server-selection/server-selection.md
+https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring.md
+https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring-logging-and-monitoring.md
+https://www.mongodb.com/docs/manual/reference/operator/query/regex/
+https://www.mongodb.com/docs/manual/reference/bson-types/
+https://www.mongodb.com/docs/upcoming/reference/collation/
+https://www.mongodb.com/docs/manual/reference/mongodb-extended-json/
+https://www.mongodb.com/docs/manual/tutorial/terminate-running-operations/#maxtimems
+https://www.mongodb.com/docs/manual/reference/bson-types/#objectid
+https://www.mongodb.com/docs/manual/reference/read-concern/
+https://www.mongodb.com/docs/manual/core/read-preference/
+https://www.mongodb.com/docs/manual/core/transactions/
+https://www.mongodb.com/docs/manual/reference/write-concern/
+https://en.wikipedia.org/wiki/Create,_read,_update_and_delete
+https://en.wikipedia.org/wiki/Decimal128_floating-point_format
+https://en.wikipedia.org/wiki/Man-in-the-middle_attack
+https://en.wikipedia.org/wiki/Pkg-config
+
+https://help.ubuntu.com/community/MountWindowsSharesPermanently
+https://www.mongodb.com/docs/manual/core/map-reduce/
+https://www.mongodb.com/docs/manual/security/
+https://www.mongodb.com/docs/manual/
+https://www.mongodb.com/docs/manual/core/gridfs/
+https://www.mongodb.com/docs/manual/reference/command/
+https://github.com/mongodb/mongo-php-driver-legacy
+https://github.com/mongodb/mongo-php-driver
+https://jira.mongodb.org/browse/PHP
+http://www.mono-project.com/
+http://support.microsoft.com/kb/257757
+https://hughestech.com.au/products/msql/
+http://www.mysql.com/
+http://dev.mysql.com/doc/
+http://dev.mysql.com/doc/mysql/en/commit.html
+https://dev.mysql.com/doc/refman/8.0/en/encrypted-connection-options.html
+https://dev.mysql.com/doc/refman/8.0/en/mysql-shell-connection-using-uri.html
+http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html
+https://dev.mysql.com/doc/refman/8.0/en/document-store.html
+http://dev.mysql.com/doc/mysql/en/error-handling.html
+https://dev.mysql.com/doc/c-api/8.4/en/mysql-refresh.html
+https://dev.mysql.com/doc/c-api/8.4/en/mysql-ssl-set.html
+https://dev.mysql.com/doc/en/using-encrypted-connections.html
+http://dev.mysql.com/doc/en/mysql-stmt-attr-set.html
+http://dev.mysql.com/doc/mysql/en/replication.html
+http://dev.mysql.com/doc/world-setup/en/index.html
+http://dev.mysql.com/doc/sakila/en/index.html
+http://dev.mysql.com/doc/mysql/en/charset-charsets.html
+http://dev.mysql.com/doc/mysql/en/charset-configuration.html
+http://www.iana.org/assignments/port-numbers
+https://www.nginx.com/resources/wiki/
+https://www.nginx.com/resources/wiki/start/topics/tutorials/install/
+http://oauth.pbwiki.com/ScalableOAuth/
+https://svn.php.net/viewvc/pecl/oauth/trunk/examples
+http://wiki.oauth.net/ProblemReporting
+http://toys.lerdorf.com/archives/55-Writing-an-OAuth-Provider-Service.html
+https://www.openal.org/
+http://www.openbsd.org/
+http://www.openbsd.org/cgi-bin/man.cgi?query=chroot
+http://www.openbsd.org/cgi-bin/man.cgi?query=packages
+http://www.openbsd.org/faq/ports/ports.html
+http://www.openlinksw.com/
+http://www.openssl.org/
+https://www.openssl.org/docs/manmaster/man1/ciphers.html#CIPHER-LIST-FORMAT
+https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_Ciphersuite
+https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_get_security_level.html
+https://www.openssl.org/docs/manmaster/man5/config.html
+https://www.oracle.com/database/technologies/instant-client.html
+https://www.oracle.com/pls/topic/lookup?ctx=dblatest&id=GUID-E5358DEA-D619-4B7B-A799-3D2F802500F1
+https://www.oracle.com/pls/topic/lookup?ctx=dblatest&id=GUID-82FF6896-F57E-41CF-89F7-755F3BC9C924
+https://www.oracle.com/technetwork/topics/php/whatsnew/php-scalability-ha-twp-128842.pdf
+https://www.oracle.com/pls/topic/lookup?ctx=dblatest&id=GUID-F7817CD2-4A2C-4D37-BD36-56DBABD4725F
+https://www.oracle.com/pls/topic/lookup?ctx=dblatest&id=GUID-DEF850F6-27E9-428E-B8FC-530230D78AD2
+https://www.oracle.com/pls/topic/lookup?ctx=dblatest&id=GUID-8DC4D5E0-CA9D-47BC-BAD0-8769405AFEC5
+https://www.oracle.com/pls/topic/lookup?ctx=dblatest&id=GUID-C11449DC-EEDE-4BB8-9D2C-0A45198C1928
+https://www.oracle.com/pls/topic/lookup?ctx=dblatest&id=GUID-8F532535-C401-4B51-BE0B-04FD74BB0621
+https://resources.oreilly.com/examples/9781565922242/blob/master/doc/cjk.inf
+https://packagist.org
+
+https://packagist.org/packages/
+https://github.com/ircmaxell/password_compat
+http://www.pcre.org/original/changelog.txt
+http://www.pcre.org/pcre.txt
+http://www.pdflib.com/products/pdflib-family/
+http://www.fpdf.org/
+http://www.tcpdf.org/
+https://pear.php.net/
+https://pear.php.net/package/
+https://pear.php.net/manual/en/installation.php
+
+https://pecl.php.net/
+https://pecl.php.net/package/
+https://svn.php.net/viewvc/pecl/
+https://downloads.php.net/~windows/pecl/releases/
+https://pecl.php.net/package-new.php
+
+https://pecl.php.net/get/
+https://www.percona.com/mysql/software/percona-server-for-mysql
+http://www.postgresql.org/
+http://www.postgresql.org/docs/current/interactive/
+https://wiki.php.net/doc/phd/
+https://www.php.net/
+https://www.php.net/git.php
+https://github.com/php/php-src/issues
+https://bugs.php.net/how-to-report.php
+https://www.php.net/download-docs.php
+https://www.php.net/docs.php
+https://doc.php.net/guide/
+https://www.php.net/downloads.php
+https://github.com/php/
+https://windows.php.net/download/
+https://wiki.php.net/internals/windows/stepbystepbuild
+https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2
+https://www.php.net/docs-echm.php
+http://gtk.php.net/
+https://www.php.net/license/
+https://www.php.net/mailing-lists.php
+https://museum.php.net/
+news://news.php.net/
+http://news.php.net/
+https://pear.php.net/manual/
+https://pear.php.net/
+https://pear.php.net/manual/en/guide.users.commandline.cli.php
+https://qa.php.net/
+http://groups.google.com/group/comp.infosystems.www.authoring.cgi/msg/cc7d43454d64d133
+https://www.php.net/releases/4_1_0.php
+https://www.php.net/releases/4_2_0.php
+https://svn.php.net/
+https://github.com/php/php-src/blob/master/php.ini-production
+
+https://github.com/php/php-src/blob/master/
+http://talks.php.net/
+https://www.php.net/support.php
+https://www.php.net/urlhowto.php
+https://phpdbg.room11.org/
+http://en.wikipedia.org/wiki/List_of_PHP_editors
+http://www.powerarchiver.com/
+https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar
+http://pslib.sourceforge.net/
+http://aspell.net/
+http://fallabs.com/qdbm/index.html
+http://fallabs.com/tokyocabinet/
+http://cr.yp.to/qmail.html
+http://www.quickzip.org/
+http://www.math.sci.hiroshima-u.ac.jp/m-mat/MT/ARTICLES/mt.pdf
+https://www.pcg-random.org/
+https://prng.di.unimi.it/
+https://dl.acm.org/doi/10.1145/3503512
+http://www.rarlabs.com/
+https://re2c.org/
+http://cnswww.cns.cwru.edu/~chet/readline/rltop.html
+http://mingweditline.sourceforge.net/
+http://directory.fsf.org/All_GNU_Packages/recode.html
+http://www.w3.org/TR/1998/REC-xml-19980210
+http://www.relaxng.org/
+
+https://datatracker.ietf.org/doc/html/rfc
+https://www.rnpgp.org/
+http://www.iana.org/assignments/operating-system-names
+http://www.rpmfind.net/
+http://rpm.pbone.net/
+http://www.mrtg.org/rrdtool/
+http://www.sambar.com/
+https://seasx.github.io/SeasLog/
+http://www.gnu.org/software/sed/sed.html
+http://msdn.microsoft.com/en-us/library/39cwe7zf.aspx
+http://msdn.microsoft.com/en-us/library/cdax410z.aspx
+http://www.acros.si/papers/session_fixation.pdf
+https://github.com/php/php-src/blob/master/ext/session/tests/save_handler.inc
+http://www.sleepycat.com/
+http://www.catb.org/~esr/faqs/smart-questions.html
+http://www.unixguide.net/network/socketfaq/
+http://www.solidtech.com/
+https://groups.google.com/forum/#!forum/php-solr
+http://sqlite.org/
+http://sqlite.org/datatype3.html#collation
+https://sqlite.org/tempfiles.html
+http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx
+https://github.com/microsoft/msphpsql
+http://msdn.microsoft.com/en-us/library/ff628167.aspx
+http://msdn.microsoft.com/en-us/library/cc644930.aspx
+http://msdn.microsoft.com/en-us/library/cc626302.aspx
+http://go.microsoft.com/fwlink/?LinkID=239647
+http://go.microsoft.com/fwlink/?LinkID=239648
+http://msdn.microsoft.com/en-us/library/cc296170.aspx
+http://msdn.microsoft.com/en-us/library/cc296206.aspx
+http://msdn.microsoft.com/en-us/library/cc296197.aspx
+http://msdn.microsoft.com/en-us/library/cc296193.aspx
+http://msdn.microsoft.com/en-us/library/ee376927.aspx
+http://msdn.microsoft.com/en-us/library/cc296208.aspx
+http://msdn.microsoft.com/en-us/library/cc626305.aspx
+http://msdn.microsoft.com/en-us/library/cc296188.aspx
+http://msdn.microsoft.com/en-us/library/ff754356.aspx
+http://www.microsoft.com/download/en/details.aspx?id=28160
+https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac
+http://msdn.microsoft.com/en-us/library/hh487161.aspx
+http://msdn.microsoft.com/en-us/library/hh510202(SQL.110).aspx
+http://go.microsoft.com/fwlink/?LinkID=237665
+http://download.microsoft.com/download/C/D/B/CDB0A3BB-600E-42ED-8D5E-E4630C905371/SQLSRV20.EXE
+http://ssdeep.sourceforge.net
+http://dfrws.org/2006/proceedings/12-Kornblum.pdf
+http://www.stuffit.com/
+http://msdn.microsoft.com/en-us/library/fe06s4ak.aspx
+http://strftime.net/
+https://github.com/sourcefrog/natsort
+https://stomp.github.io/
+http://www.csie.ntu.edu.tw/~cjlin/libsvm
+http://subversion.apache.org/
+http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.add.html
+http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.delete.html
+http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.cat.html
+http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.checkout.html
+http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.cleanup.html
+http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.commit.html
+http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.diff.html
+http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.import.html
+http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.log.html
+http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.list.html
+http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.status.html
+http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.update.html
+http://svnbook.red-bean.com/en/1.2/svn.advanced.externaldifftools.html
+https://wiki.swoole.com/
+http://www.sybase.com/
+http://primes.utm.edu/glossary/page.php?sort=LegendreSymbol
+http://www.ibiblio.org/pub/Linux/libs/graphics/
+https://www.pingcap.com/tidb/
+http://tidy.sourceforge.net/
+http://api.html-tidy.org/#quick-reference
+http://www.html-tidy.org/
+https://github.com/petdance/tidyp
+http://www.net-snmp.org/
+https://github.com/andlabs/libui
+http://www.ultimatezip.com/
+http://www.unicode.org/
+http://www.unicode.org/reports/tr
+http://unicode.org/reports/tr15/
+http://unicode.org/faq/normalization.html
+http://www.unicode.org/reports/tr21/
+http://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries
+http://www.unixodbc.org/
+https://github.com/php/php-src/raw/master/CODING_STANDARDS.md
+http://www.ossp.org/pkg/lib/uuid/
+http://code.google.com/p/v8/
+http://en.wikipedia.org/wiki/Leap_second
+http://en.wikipedia.org/wiki/Recursive_acronym
+http://en.wikipedia.org/wiki/Quicksort
+https://wiki.php.net/internals/windows/stepbystepbuild
+http://www.ghisler.com/
+https://www.betaarchive.com/wiki/index.php?title=Microsoft_KB_Archive/914392
+http://msdn.microsoft.com/library/en-us/htmlhelp/html/vsconhh1start.asp
+http://www.rarlab.com/
+http://www.winzip.com/
+http://www.openwddx.org/
+https://www.apachefriends.org/
+http://savannah.nongnu.org/projects/attr/
+http://xchm.sourceforge.net/
+http://xdebug.org/
+http://www.xmailserver.org/xdiff-lib.html
+http://web.archive.org/web/20110514095512/http://mirror.facebook.net/facebook/xhprof/doc.html
+http://github.com/preinheimer/xhprof
+http://www.w3.org/TR/xinclude/
+http://www.xitami.com/
+http://www.w3.org/MarkUp/Forms/
+http://www.w3.org/MarkUp/Forms/2003/xforms-for-html-authors.html
+http://xkcd.com/
+http://www.w3.org/XML/
+http://www.xmlrpc.com/
+http://xmlrpc-epi.sourceforge.net/
+http://www.w3.org/TR/xslt
+http://www.laruence.com/2011/12/02/2333.html
+http://www.yaml.org/
+http://pyyaml.org/wiki/LibYAML
+http://www.indexdata.dk/yaz/
+http://www.indexdata.dk/yaz/doc/zoom.tkl
+http://ftp.indexdata.dk/pub/yaz/win32/
+http://ftp.indexdata.dk/pub/yaz/
+http://www.indexdata.dk/yaz/doc/tools.tkl#CCL
+http://www.indexdata.dk/phpyaz/
+http://www.collectionscanada.ca/iso/ill/stanprf.htm
+http://www.indexdata.dk/yazproxy/
+http://www.collectionscanada.ca/iso/ill/document/standard/z-ill-1a.pdf
+http://www.loc.gov/z3950/agency/
+http://www.loc.gov/z3950/agency/defns/bib1.html
+http://www.loc.gov/standards/marcxml/
+http://www.loc.gov/z3950/agency/markup/04.html#3.2.1.1.4
+http://www.zend.com/
+http://www.zend.com/en/products/studio/
+http://zeromq.org/
+http://www.zlib.net/
+http://www.zlib.net/manual.html
+https://zookeeper.apache.org/
+https://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html#C+Binding
+
+http://tools.ietf.org/html/rfc7231
+http://www.w3.org/TR/soap11/
+http://www.w3.org/TR/soap12/
+http://www.w3.org/TR/wsdl
+
+Applied Cryptography by Schneier (ISBN 0-471-11709-9)
+Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1)
+
+php-install@lists.php.net
+php-install+subscribe@lists.php.net
+phpdoc@lists.php.net
+doc-license@lists.php.net
+phpdoc+subscribe@lists.php.net
+yourname@example.com
+
+superglobals
+__autoload
+
+Composer
+
+PECL
+
+http://www.opengroup.org/onlinepubs/007908799/xsh/strftime.html
+http://www.adobe.com/devnet/acrobat/fdftoolkit.html
+
+
+true
+false
+null
+
+array
+int
+string
+bool
+float
+object
+resource
+mixed
+never
+
+
+throw
+try
+catch
+finally
+
+
+function
+return
+
+
+namespace
+use
+
+
+const
+declare
+foreach
+global
+instanceof
+new
+yield
+yield from
+
+intcallbackmixedamixedb
+
+php.ini
+.user.ini
+httpd.conf
+.htaccess
+
+
+API
+ASCII
+CA
+CGI
+CLI
+CLI SAPI
+cURL
+DER
+DNS
+DOM
+FPM
+FTP
+FTPS
+HMAC
+HTML
+HTTP
+HTTPS
+HSTS
+IP
+IPv4
+IPv6
+JSON
+LDAP
+PDO
+PEM
+Phar
+PHP
+POP3
+RTSP
+SAPI
+SFTP
+SMTP
+SPL
+SSH
+SSL
+TCP
+TLS
+UDP
+URI
+URL
+XML
+
+
diff --git a/scripts/dtdent-conv.php b/scripts/dtdent-conv.php
new file mode 100644
index 000000000..2b1dec206
--- /dev/null
+++ b/scripts/dtdent-conv.php
@@ -0,0 +1,84 @@
+ |
++----------------------------------------------------------------------+
+| Description: Convert old style .ent into new style .ent XML bundle. |
++----------------------------------------------------------------------+
+
+See `entities.php` source for detailed rationale.
+
+Use this for converting bundled entities files that use into
+XML version used by `entities.php`.
+
+After converting, add the generated entities in an global.ent or
+manual.ent file, and delete the previous one.
+
+After all old style .ent files are split or converted, this script can
+be removed. */
+
+ini_set( 'display_errors' , 1 );
+ini_set( 'display_startup_errors' , 1 );
+error_reporting( E_ALL );
+
+if ( count( $argv ) < 2 )
+ die(" Syntax: php $argv[0] infile\n" );
+
+$infile = $argv[1];
+
+$content = file_get_contents( $infile );
+
+$pos1 = 0;
+while ( true )
+{
+ $pos1 = strpos( $content , " DOMNodeList (ampunstand intended)
+
+ $name = trim( $name );
+ $text = str_replace( "&" , "&" , $text );
+
+ $frag = "\n";
+ $frag .= " $text\n";
+ $frag .= '';
+
+ $dom = new DOMDocument( '1.0' , 'utf8' );
+ $dom->recover = true;
+ $dom->resolveExternals = false;
+ libxml_use_internal_errors( true );
+
+ $dom->loadXML( $frag , LIBXML_NSCLEAN );
+ $dom->normalizeDocument();
+
+ libxml_clear_errors();
+
+ $text = $dom->saveXML( $dom->getElementsByTagName( "entity" )[0] );
+ $text = str_replace( "&" , "&" , $text );
+
+ echo "$text\n";
+}
diff --git a/scripts/dtdent-split.php b/scripts/dtdent-split.php
new file mode 100644
index 000000000..168e5aa89
--- /dev/null
+++ b/scripts/dtdent-split.php
@@ -0,0 +1,96 @@
+ |
++----------------------------------------------------------------------+
+| Description: Split old style .ent file into individual files. |
++----------------------------------------------------------------------+
+
+See `entities.php` source for detailed rationale.
+
+Use this for spliting `language-snippets-ent` or other "big" entities
+files into individual .xml files.
+
+After spliting, add the new directory entities/ with they contents,
+and remove `language-snippets-ent`, in one go.
+
+After all old style .ent files are split or converted, this script can
+be removed. */
+
+ini_set( 'display_errors' , 1 );
+ini_set( 'display_startup_errors' , 1 );
+error_reporting( E_ALL );
+
+if ( count( $argv ) < 4 )
+ die(" Syntax: php $argv[0] infile outdir [hash user]\n" );
+
+$infile = $argv[1];
+$outdir = $argv[2];
+$hash = $argv[3] ?? "";
+$user = $argv[4] ?? "_";
+
+$content = file_get_contents( $infile );
+$entities = [];
+
+// Parse
+
+$pos1 = 0;
+while ( true )
+{
+ $pos1 = strpos( $content , " $text )
+{
+ $file = "$outdir/$name.xml";
+ if ( file_exists( $file ) )
+ exit( "Name colision: $file\n" );
+}
+
+// Write
+
+foreach( $entities as $name => $text )
+{
+ $file = "$outdir/$name.xml";
+
+ $header = '' . "\n";
+
+ if ( $hash != "" )
+ $header .= "\n";
+
+ file_put_contents( $file , $header . $text );
+}
+
+$total = count( $entities );
+print "Generated $total files.\n";
diff --git a/scripts/entities.php b/scripts/entities.php
index 8005862ea..3305f6a8d 100644
--- a/scripts/entities.php
+++ b/scripts/entities.php
@@ -110,11 +110,11 @@
else
print "Creating .entities.ent in debug mode.\n";
-loadEnt( __DIR__ . "/../global.ent" , global: true );
+loadEnt( __DIR__ . "/../global.ent" , global: true , warnMissing: true );
foreach( $langs as $lang )
{
loadEnt( __DIR__ . "/../../$lang/global.ent" , global: true );
- loadEnt( __DIR__ . "/../../$lang/manual.ent" , translate: true );
+ loadEnt( __DIR__ . "/../../$lang/manual.ent" , translate: true , warnMissing: true );
loadEnt( __DIR__ . "/../../$lang/remove.ent" , remove: true );
loadDir( $langs , $lang );
}
@@ -180,7 +180,7 @@ static function put( string $path , string $name , string $text , bool $global =
static function slow( string $path )
{
if ( isset( $slow[$path] ) )
- fwrite( STDERR , "External entity file physically overwrote: $path\n" );
+ fwrite( STDERR , "Unexpected physical file ovewrite: $path\n" );
$slow[ $path ] = $path;
}
@@ -226,7 +226,7 @@ static function checkReplaces( bool $debug )
print "Expected translated, replaced $replaced times:\t$name\n";
}
- elseif ( $expectedRemoved && $replaced != 0 )
+ if ( $expectedRemoved && $replaced != 0 )
{
Entities::$countRemoveReplaced++;
if ( $debug )
@@ -236,14 +236,15 @@ static function checkReplaces( bool $debug )
}
}
-function loadEnt( string $path , bool $global = false , bool $translate = false , bool $remove = false )
+function loadEnt( string $path , bool $global = false , bool $translate = false , bool $remove = false , bool $warnMissing = false )
{
$absolute = realpath( $path );
if ( $absolute === false )
if ( PARTIAL_IMPL )
return;
else
- exit( "Not directory: $path\n" );
+ if ( $warnMissing )
+ fwrite( STDERR , "\n Missing entity file: $path\n" );
$path = $absolute;
$text = file_get_contents( $path );
@@ -268,9 +269,9 @@ function loadEnt( string $path , bool $global = false , bool $translate = false
$text = $other->saveXML();
$text = str_replace( "&" , "&" , $text );
+ $text = rtrim( $text , "\n" );
$lines = explode( "\n" , $text );
- array_shift( $lines ); // remove XML declaration
- array_pop( $lines ); // remove spurious EOL
+ array_shift( $lines ); // remove XML declaration
$text = implode( "\n" , $lines );
Entities::put( $path , $name , $text , $global , $translate , $remove );
@@ -316,15 +317,15 @@ function loadXml( string $path , string $text , bool $expectedReplaced )
{
if ( trim( $text ) == "" )
{
- fwrite( STDERR , "\n Empty entity '$path'. Should it be in remove.ent?\n" );
- Entities::put( $pat , $text , replace: $expectedReplaced );
+ fwrite( STDERR , "\n Empty entity (should it be in remove.ent?): '$path' \n" );
+ Entities::put( $pat , $text , remove: true );
return;
}
$info = pathinfo( $path );
$name = $info["filename"];
- $frag = "$text";
+ $frag = "$text";
$dom = new DOMDocument( '1.0' , 'utf8' );
$dom->recover = true;
@@ -361,19 +362,16 @@ function saveEntitiesFile( string $filename , array $entities )
foreach( $entities as $name => $entity )
{
$text = $entity->text;
-
$quote = "";
- $posSingle = strpos( $text , "'" );
- $posDouble = strpos( $text , '"' );
-
- if ( $posSingle === false )
- $quote = "'";
- if ( $posDouble === false )
- $quote = '"';
// If the text contains mixed quoting, keeping it
// as an external file to avoid (re)quotation hell.
+ if ( strpos( $text , "'" ) === false )
+ $quote = "'";
+ if ( strpos( $text , '"' ) === false )
+ $quote = '"';
+
if ( $quote == "" )
{
if ( $entity->path == "" )