Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:129688 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by lists.php.net (Postfix) with ESMTPS id B7CCA1A00C0 for ; Wed, 24 Dec 2025 16:15:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1766592963; bh=oEqbv8aRvySHyEo7tq5X3gX11ukIC3Rxyg5JppVFPeg=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=JeUI3PC3NS6FJQWPC2Wz3FbLVlfKYPQ8XA+FSwAZyOdlGwZrQT+E9kG7Z89Q2YI9s OvO7LyGG3xa3ikFiuNj1e2qL7aWbKqr27BnsXC1jk1Kxm9/kWgvmJrXq3ceQRdPE7J oDzfVLExDEVOxdJzl5Z6JXvDm2n1FO6KWHXIgwxThSj48rrhrp3tdpi1hJLUxGFsFG 7qN/MBiF1Qr8vR7c58Gvjceq87zjreyMYfD0b/+2QrWPb/ucHoTduOVoIv5X4uyvrw EsHUYFzYxVxlfQ3K85xophYwl/KYeY3d4/pbRfb/6V4TFimEI4qW08SAFeWtmNfWrO aZ0/YM/pCyTtw== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id AE7C51801E7 for ; Wed, 24 Dec 2025 16:16:01 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_MISSING,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from premium76-5.web-hosting.com (premium76-5.web-hosting.com [162.213.255.108]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Wed, 24 Dec 2025 16:16:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=pmjones.io; s=default; h=To:References:Message-Id:Content-Transfer-Encoding:Cc:Date: In-Reply-To:From:Subject:Mime-Version:Content-Type:Sender:Reply-To: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=oEqbv8aRvySHyEo7tq5X3gX11ukIC3Rxyg5JppVFPeg=; b=oVFH4Jj59XJ3YxfRmg/nKOf+X7 WpnlQBLS6mGHkiXYJT4ifZ1DKB3UYqOIyLDVtZBZsFYV8zl56YwB6mvaMHxB+Csm651+MKl3WKkfY jMGlwkO3S3vwISkzh69utI/vUsVvGZBuwtJaqylxp60p+3JcFXpCX5jwgzeBVSfBAYVgiVHZtCxNc UxGUIt6jgPn1ARYSlOznGo70HC6GmkYGSuwNEW6hGvdSZcSbk96FBGk3cc4kMJqjyar/q1m7uYM1R OtLkqs3a2XTrHOIeSr+jnTjaG7WzJz0lanHd6QJImr/CfqIB+yIA4OpRRRafBVG52B66omuDrHG8h jIQJ+ogA==; Received: from 107-223-28-39.lightspeed.nsvltn.sbcglobal.net ([107.223.28.39]:54504 helo=smtpclient.apple) by premium76.web-hosting.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vYRWj-0000000HYFp-2qGh; Wed, 24 Dec 2025 11:15:53 -0500 Content-Type: text/plain; charset=us-ascii Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\)) Subject: Re: [PHP-DEV] [RFC Idea] Short echo tag with automatic HTML escaping () In-Reply-To: Date: Wed, 24 Dec 2025 10:15:41 -0600 Cc: Sergei Issaev , Anton Smirnov , internals@lists.php.net Content-Transfer-Encoding: quoted-printable Message-ID: References: <7c592a80-76a5-4b16-9c7b-a354aa34802a@mail.ru> <03590ce8-8037-4409-bc0e-603c692fe349@sandfox.me> <827cd223-226d-43c6-97f6-ccbe5492fb5e@mail.ru> To: Rob Landers X-Mailer: Apple Mail (2.3826.700.81) X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - premium76.web-hosting.com X-AntiAbuse: Original Domain - lists.php.net X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - pmjones.io X-Get-Message-Sender-Via: premium76.web-hosting.com: authenticated_id: pmjones@pmjones.io X-Authenticated-Sender: premium76.web-hosting.com: pmjones@pmjones.io X-Source: X-Source-Args: X-Source-Dir: X-From-Rewrite: unmodified, already matched X-Rspamd-Queue-Id: 1vYRWj-0000000HYFp-2qGh From: pmjones@pmjones.io ("Paul M. Jones") Hi all, > On Dec 24, 2025, at 02:14, Rob Landers wrote: >=20 > Maybe, you should consider something like this: >=20 > =20 > Then you only choose the one for your context: >=20 > const name =3D >=20 > "... >=20 > window.config=3D >=20 > .size { width=3D; } //prevents ;}.size:after { = content=3D"=20 > Its a bit more to type, but compared to googling the right way to do = these in all the right places and vetting/hoping that it is right... it = seems worth it. For what it's worth, that is much how Qiq works: - {{ ... }} will not echo at all by itself - {{=3D ... }} will echo raw unescaped output - {{h ... }} will echo escaped for HTML content - {{a ... }} will echo escaped for HTML attributes - {{u ... }} will echo escaped for URLs - {{c ... }} will echo escaped for CSS - {{j ... }} will echo escaped for JavaScript -- pmj