suchen
HeimBackend-EntwicklungPHP-TutorialPHP关于函数传中文值乱码的有关问题

PHP关于函数传中文值乱码的问题
想做一个游戏激活码生成函数,写出来之后发现个问题:$str放中文进去的时候出现乱码,请问该怎么解决一下?

function set_randcode($str, $num, $len, $mark) {
  $strs_shuffle = str_shuffle((str_shuffle(strtoupper(trim($str))) . str_shuffle(strtoupper(trim($str))) . str_shuffle(strtoupper(trim($str)))));
  $code = Array();
  for ($i = 0; $i   $code[] = (substr("$strs_shuffle", mt_rand(0, (strlen($str) - $len)), $len) . $mark . substr("$strs_shuffle", mt_rand(0, (strlen($str) - $len)), $len) . $mark . substr("$strs_shuffle", mt_rand(0, (strlen($str) - $len)), $len) . $mark . substr("$strs_shuffle", mt_rand(0, (strlen($str) - $len)), $len));
  }
  $code = array_unique($code); //移除数组中重复的值
  $set_code = Array();
  for ($j = 0; $j   $set_code[] = $code[$j];
  }
  return $set_code;
}

小弟刚开始学习,希望能讲的浅显易懂些。

------解决方案--------------------
str_shuffle 的作用是将字符串打乱,操作是以字节为单位的
打乱后,原来相邻的字节,可能就不相邻了

一个汉字需要靠相邻的字节来表示,所需字节数依编码定(gbk 2字节、utf-8 3字节、等等)
原来相邻的变成不相邻的了,就出现了“乱码”
------解决方案--------------------
将substr()换成:subCNchar()试试,估计过不了str_shuffle(),建议自己写个重组字符串规则,如随机抽取、加减乘除运算等等;

PHP code
    /** 截取汉字 *     * $str     要截取的字符串     * $start   截取的起始位置     * $length  要截取的长度     * $charset 字符串编码     **/    function subCNchar($str, $start = 0, $length, $charset = "utf-8") {        if (strlen($str) <font color="#e78608">------解决方案--------------------</font><br>函数前面添加:<br>mb_internal_encoding('GBK');<br>当然不一定是GBK,根据你php文件的字符集修改。<br>再就是生成图片时你加载的字体必须支持中文。<br><font color="#e78608">------解决方案--------------------</font><br>页面最顶加入header('Content-type: text/html;charset=UTF-8');<div class="clear">
                 
              
              
        
            </div>
Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie können Sie überprüfen, ob bereits eine PHP -Sitzung begonnen hat?Wie können Sie überprüfen, ob bereits eine PHP -Sitzung begonnen hat?Apr 30, 2025 am 12:20 AM

In PHP können Sie Session_Status () oder Session_id () verwenden, um zu überprüfen, ob die Sitzung gestartet wurde. 1) Verwenden Sie die Funktion Session_Status (). Wenn PHP_Session_Active zurückgegeben wird, wurde die Sitzung gestartet. 2) Verwenden Sie die Funktion Session_id (), wenn eine nicht leere Zeichenfolge zurückgegeben wird, die Sitzung gestartet wurde. Beide Methoden können den Sitzungszustand effektiv überprüfen, und die Auswahl der Verwendung von Methoden hängt von der PHP -Version und den persönlichen Einstellungen ab.

Beschreiben Sie ein Szenario, in dem die Verwendung von Sitzungen in einer Webanwendung unerlässlich ist.Beschreiben Sie ein Szenario, in dem die Verwendung von Sitzungen in einer Webanwendung unerlässlich ist.Apr 30, 2025 am 12:16 AM

SESSIONS AREVITALINWEBAPPLIKATIONEN, Besonders vor den Commerceplatformen

Wie können Sie den gleichzeitigen Sitzungszugriff in PHP verwalten?Wie können Sie den gleichzeitigen Sitzungszugriff in PHP verwalten?Apr 30, 2025 am 12:11 AM

Verwalten des gleichzeitigen Sitzungszugriffs in PHP kann mit den folgenden Methoden erfolgen: 1. Verwenden Sie die Datenbank, um Sitzungsdaten zu speichern, 2.. Diese Methoden tragen dazu bei, die Datenkonsistenz sicherzustellen und die Gleichzeitleistung zu verbessern.

Was sind die Einschränkungen bei der Verwendung von PHP -Sitzungen?Was sind die Einschränkungen bei der Verwendung von PHP -Sitzungen?Apr 30, 2025 am 12:04 AM

PhpSessionShaveseverallimitationen: 1) StorageConstraintScanleadtoperformanceISSues; 2) SecurityVulnerabilitieslikeSessionFixationAtpaSexist; 3) Skalierbarkeits-IschallengingDuetoServer-spezifisch; 4) SessionExpirationManbeproblematic;

Erklären Sie, wie sich das Lastausgleich auf das Sitzungsmanagement auswirkt und wie es angegangen werden soll.Erklären Sie, wie sich das Lastausgleich auf das Sitzungsmanagement auswirkt und wie es angegangen werden soll.Apr 29, 2025 am 12:42 AM

Lastausgleich beeinflusst das Sitzungsmanagement, kann jedoch durch Sitzungsreplikation, Sitzungsklebrigkeit und zentraler Sitzungsspeicher gelöst werden. 1. Sitzungsreplikationsdaten zwischen Servern. 2. Session Stickiness lenkt Benutzeranfragen auf denselben Server. 3. Zentraler Sitzungsspeicher verwendet unabhängige Server wie Redis, um Sitzungsdaten zu speichern, um die Datenfreigabe zu gewährleisten.

Erläutern Sie das Konzept der Sitzungsperrung.Erläutern Sie das Konzept der Sitzungsperrung.Apr 29, 2025 am 12:39 AM

SessionLockingIsatechniqueUTToensureUsers'SSessionSessionSeSexclusivetooneuseratatim.itiscrialtforpreventingDatacorruptionandSecurityBreachesinmulti-UserApplications

Gibt es Alternativen zu PHP -Sitzungen?Gibt es Alternativen zu PHP -Sitzungen?Apr 29, 2025 am 12:36 AM

Zu den Alternativen zu PHP-Sitzungen gehören Cookies, Token-basierte Authentifizierung, datenbankbasierte Sitzungen und Redis/Memcached. 1. Kookies verwalten Sitzungen, indem sie Daten über den Kunden speichern, was einfach, aber nur gering ist. 2. Altbasierte Authentifizierung verwendet Token, um Benutzer zu überprüfen, was sehr sicher ist, aber zusätzliche Logik erfordert. 3.Database-basiertssesses speichert Daten in der Datenbank, was eine gute Skalierbarkeit aufweist, die Leistung jedoch beeinflusst. V.

Definieren Sie den Begriff 'Sitzung' im Kontext von PHP.Definieren Sie den Begriff 'Sitzung' im Kontext von PHP.Apr 29, 2025 am 12:33 AM

Sessionhijacking bezieht sich auf einen Angreifer, der sich als Benutzer ausgibt, indem die SessionID des Benutzers angezeigt wird. Zu den Präventionsmethoden gehören: 1) Verschlüsseln der Kommunikation mit HTTPS; 2) Überprüfung der Quelle der SessionID; 3) mit einem sicheren Algorithmus zur Sitzung der Sitzung; 4) regelmäßig aktualisieren die SitzungID.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.