Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:108816 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 22274 invoked from network); 3 Mar 2020 10:27:41 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 3 Mar 2020 10:27:41 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 2FF831804E0 for ; Tue, 3 Mar 2020 00:46:48 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: ** X-Spam-Status: No, score=2.7 required=5.0 tests=BAYES_00,BODY_8BITS, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS39142 195.191.240.0/23 X-Spam-Virus: No X-Envelope-From: Received: from hos109.unaxus.net (hos109.unaxus.net [195.191.240.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 3 Mar 2020 00:46:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=heigl.org; s=default; h=Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID :Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To: Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe :List-Post:List-Owner:List-Archive; bh=2bAkUv83cQquWg+TlVvuXP87Q2zJK+VqBt36VpxQ9aY=; b=Rz8Uv606esKKDAQYPtLZlKvac6 PVP24q2ibyHIqNkbz4qOoSZ60JyLx0QkkA09G8TzKacYfUycMgYle0LSjzDayQteGy2Ya8XnPT+By 6CiJzdJZd3+fg7LlNmCPthJ3kzCI0FiNQ3nBcQxZoZx+TuKLsgX+Bm5lW7jBO37qyv8ctLJf/wspF PYETHGu+OTT8Rpy3uE6Jmi1j1kcDyWEX7rd1XAur7xrxlnO5v20DXqNj3aPgQslav2lDVbEawPe2x K39mocO5RGPfkUnC6FdeWgMCW3Ann8nAKLpAe2+hiCebnTRH+PcZXNuFs+MQx3gl45b8dg23o0M8d P94N9PiQ==; Received: from ma.bitexpert.net ([82.119.168.218]:63780 helo=[192.168.13.2]) by hos109.unaxus.net with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1j93CP-00Apns-Ft for internals@lists.php.net; Tue, 03 Mar 2020 09:46:45 +0100 To: internals@lists.php.net References: Autocrypt: addr=andreas@heigl.org; keydata= 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 RLiMJj+x8jGy2xtu Message-ID: <704fa268-6194-0ec2-d6b0-8f5efdf1009f@heigl.org> Date: Tue, 3 Mar 2020 09:46:35 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="Zb0PLWmikJp5VV0Ln8PvjdRy3MEKBHxTV" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hos109.unaxus.net X-AntiAbuse: Original Domain - lists.php.net X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - heigl.org X-Get-Message-Sender-Via: hos109.unaxus.net: authenticated_id: a.heigl@heigl.org X-Authenticated-Sender: hos109.unaxus.net: a.heigl@heigl.org Subject: Re: [PHP-DEV] Proposal for a new basic function: str_contains From: andreas@heigl.org (Andreas Heigl) --Zb0PLWmikJp5VV0Ln8PvjdRy3MEKBHxTV Content-Type: multipart/mixed; boundary="UzGXVa5vUM8rdqmgBToOsEzKFwoMks9p1" --UzGXVa5vUM8rdqmgBToOsEzKFwoMks9p1 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable Hey all. Just a short note why I voted against the current implementation of the str_contains functionality. While it is mainly aimed at being a mere convenience-function that could also be easily implemented in userland it misses one main thing IMO when handling unicode-strings: Normalization. It is correct, that the binary representation of the string "=C3=A4=C3=B6= =C3=BC=C3=9F" within the string "T=C3=A4=C3=B6=C3=BC=C3=9Ftstring" seems to be the same= and that a simple `strpos('T=C3=A4=C3=B6=C3=BC=C3=9Ftstring', '=C3=A4=C3=B6=C3=BC=C3=9F')` = results in a not-false result. But using unicode it might be that the two strings are using different normalizations. So for the human eye the two strings look (almost) identical but internaly they are completely different (and even mb_strpos might not be able to detect the similarity). See https://3v4l.org/fasO4 for more information. As we are creating new functionality here it would have been great to solve this issue. But as it is IMO merely a convenience add on that can easily be implemented in userland I vote against it. Cheers Andreas Am 17.02.20 um 15:23 schrieb Rowan Tommins: > On Mon, 17 Feb 2020 at 13:38, Pierre Joye wrote:= >=20 >> >> Btw, while some mbstring references I I mentioned, I do like the ICU s= earch >> implementation as well. >> >> http://userguide.icu-project.org/collation/icu-string-search-service >> >> It handles a lot of cases based on locales. >> >=20 >=20 > That's a lovely example of why treating Unicode as a character encoding= is > the wrong mindset. >=20 > I would love to see more people using ext/intl rather than ext/mbstring= , > and more ICU features like this being included. >=20 > Regards, >=20 --=20 ,,, (o o) +---------------------------------------------------------ooO-(_)-Ooo-+ | Andreas Heigl | | mailto:andreas@heigl.org N 50=C2=B022'59.5" E 08=C2=B0= 23'58" | | http://andreas.heigl.org http://hei.gl/wiFKy7 | +---------------------------------------------------------------------+ | http://hei.gl/root-ca | +---------------------------------------------------------------------+ --UzGXVa5vUM8rdqmgBToOsEzKFwoMks9p1-- --Zb0PLWmikJp5VV0Ln8PvjdRy3MEKBHxTV Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEOHo7et0VdZk8RJK34Ff+SCK3tkUFAl5eGWsACgkQ4Ff+SCK3 tkXmgw//S9+gaCxQun6cgu5Ju8LLKV5cFVYzk7yVDyJx9HAfwFBi+0LAzbBMAbr9 bALaq9jH8vpr1nfyeMUnUZALcJUlP3FpQwldEIBHvqvW1LzF/96vdvWv8QF09kiA HVUzHXX6b5FauJxAvKG4z7CYyA9HdDNcylws0OLeBTtc4TYNrzhAUZbLKQ0Mjk6J IgoHr3ZZvOenMis74ttae699I+30b9Iu0RnnmDHszMgx1gHrd+eJUBBsU+UIlIou qBYItYWIetwOTSaj0wu+XkXiyA5/HuQ3xQk3LaOvKOctV4kRufxseg8mu6PhAL1t vz54NJs8v9+owGOsKaybnM7tRCeA2RvujC4IoQ8APu/kqAAV6UX1uM5SVZipkVUC ymT2Ye/NIhmq77d6CtbdVcL1EoA/CZ5jxGMXaLrB1UCsQ4AmIcwNCkfBazP9xeL8 MxeHvwFAsSj/DI+kWnLuJS/Da4NEqX+fBQWcBxo9WFfM+6rsf15FHttM0N/qCphP FqlyiACEzfptQ081M1VC3e+mSAnW4O5XrSds3y2iXIL2K+HpFMgOrKSKv79ZDfA1 bmmwtwdSWRMKsR0pNBpNqIvL/KpSbAduBh+XSQ881GfH7Os1PSQ+llXBabBRzP2m V1of/Yw2+e2Opy0Mmz6lPqemy2pz6FixMWGK1a8ROxvIV9zIk+M= =RBDA -----END PGP SIGNATURE----- --Zb0PLWmikJp5VV0Ln8PvjdRy3MEKBHxTV--