Position actuelle: Accueil> Derniers articles> Comment résoudre le problème de la chaîne PHP trop longtemps dans la fonction substr?

Comment résoudre le problème de la chaîne PHP trop longtemps dans la fonction substr?

gitbox 2025-10-01
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Ceci n&#39;est pas lié au contenu de l&#39;article. PHP Exemple de code</span></span><span>
</span><span><span class="hljs-variable">$placeholder</span></span><span> = </span><span><span class="hljs-string">"Ce code n&#39;a rien à voir avec le contenu de l&#39;article,Utiliser uniquement par exemple。"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$placeholder</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/**
 * Texte de l&#39;article:Comment passer substr Solution de fonctionnement PHP Le problème de la corde trop longtemps?
 * 
 * exister PHP En cours de développement,Souvent, vous rencontrerez la longue chaîne,Par exemple, l&#39;obtention du contenu de l&#39;article à partir de la base de données、Lorsque les commentaires de l&#39;utilisateur ou d&#39;autres données texte,
 * La sortie directe peut provoquer une disposition de page confuse ou un chargement lent。Pour résoudre ce problème,Disponible PHP Intégré substr Fonction intercepte les chaînes。
 * 
 * 1. substr Utilisation de base des fonctions
 * substr La syntaxe de base de la fonction est la suivante:
 * 
 * substr(string $string, int $start, ?int $length = null): string
 * 
 * - $string:La chaîne d&#39;origine à traiter。
 * - $start:L&#39;emplacement où l&#39;interception a commencé,0 Indique à partir du début de la chaîne。
 * - $length:Paramètres facultatifs,Indique la longueur à intercepter。Si ce n&#39;est pas passé,Ensuite, la fin de la chaîne sera interceptée。
 * 
 * Exemple:
 */</span>
</span><span><span class="hljs-variable">$original</span></span><span> = </span><span><span class="hljs-string">"PHP C&#39;est un langage de script côté serveur populaire,Idéal pour développer des pages et applications Web。"</span></span><span>;
</span><span><span class="hljs-variable">$shortened</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$original</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">20</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$shortened</span></span><span> . </span><span><span class="hljs-string">"..."</span></span><span>; </span><span><span class="hljs-comment">// Sortir: PHP C&#39;est un côté serveur populaire...</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/**
 * 2. Traiter des caractères multi -yte
 * exister处理中文、Quand des personnages multi-octets comme le japonais,Utiliser directement substr Il peut y avoir des codes brouillés。
 * La solution consiste à utiliser mb_substr fonction:
 */</span>
</span><span><span class="hljs-variable">$original_cn</span></span><span> = </span><span><span class="hljs-string">"C&#39;est une chaîne chinoiseExemple,Utilisé pour tester la fonction d&#39;interception。"</span></span><span>;
</span><span><span class="hljs-variable">$shortened_cn</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_substr</span></span><span>(</span><span><span class="hljs-variable">$original_cn</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$shortened_cn</span></span><span> . </span><span><span class="hljs-string">"..."</span></span><span>; </span><span><span class="hljs-comment">// Sortir: C&#39;est une chaîne chinoise...</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/**
 * 3. Intercepter et ajouter dynamiquement les ellipses
 * Vous pouvez juger dynamiquement la longueur de la chaîne en fonction de vos besoins,Intercepter et ajouter l&#39;ellipsis s&#39;il dépasse une certaine longueur:
 */</span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">truncateString</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$string</span></span></span><span>, </span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-number">50</span></span><span>) {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">mb_strlen</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>) &gt; </span><span><span class="hljs-variable">$length</span></span><span>) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_substr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$length</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>) . </span><span><span class="hljs-string">"..."</span></span><span>;
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$string</span></span><span>;
    }
}

</span><span><span class="hljs-variable">$example_text</span></span><span> = </span><span><span class="hljs-string">"passer substr ou mb_substr fonction,Nous pouvons contrôler efficacement la longueur de texte affichée sur la page,Cela améliore l&#39;expérience utilisateur。"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">truncateString</span></span><span>(</span><span><span class="hljs-variable">$example_text</span></span><span>, </span><span><span class="hljs-number">30</span></span><span>); </span><span><span class="hljs-comment">// Sortir: passer substr ou mb_substr fonction...</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/**
 * Résumer:
 * utiliser substr ou mb_substr Commodément contrôlé PHP La longueur de la chaîne:
 * - 对于英文ou单字节字符,substr 足够utiliser。
 * - 对于中文ou多字节字符,推荐utiliser mb_substr。
 * - Coordonner pour juger la longueur et les ellipses,Il peut rendre la page plus propre et conviviale。
 */</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 尾部无关Exemple de code</span></span><span>
</span><span><span class="hljs-variable">$footer_note</span></span><span> = </span><span><span class="hljs-string">"本文Exemple结束。"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$footer_note</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>