Aktueller Standort: Startseite> Neueste Artikel> So implementieren Sie String Paging über MB_STRCUT

So implementieren Sie String Paging über MB_STRCUT

gitbox 2025-05-26

Bei der Verarbeitung großer Text mit mehrsprachigen Zeichen kann es einfach, Zeichen und verstümmelter Code zu beeinträchtigen, wenn die String-Funktion von PHP keine Multi-Byte-Codierung unterstützt. Insbesondere in Szenarien, in denen ein großes Textstück angezeigt werden muss, wird die Sicherheitsstaaten zu einem wichtigen Problem. In diesem Artikel wird vorgestellt, wie die Funktion MB_STRCUT verwendet wird, um eine String-Pagination-Anzeige zu implementieren, die nicht nur die Charakterintegrität gewährleistet, sondern auch das Display der Front-End-Pagination erleichtert.

Warum mb_strcut anstelle von substr wählen?

substr () ist eine gemeinsame String -Kürzungsfunktion in PHP, wird jedoch von Bytes verarbeitet. Wenn der Text Multi-Byte-Zeichen wie Chinesisch, Japanisch oder Koreanisch enthält, können Substr () Zeichen leicht abschneiden, was zu verstümmelten Code führt. Im Gegensatz dazu ist Mb_Strcut () eine Funktion für Multibyte -Zeichensätze, die Saiten sicher durch Bytes abfängt und gleichzeitig die Zeichen abschneiden.

Einführung in die Funktion MB_strcut

 mb_strcut ( string $string , int $start [, int $length [, string $encoding ]] ) : string
  • $ String : Die zu verarbeitende Zeichenfolge.

  • $ start : Start Byte Offset.

  • $ Länge : Die Anzahl der abgefangenen Bytes.

  • $ codierung : Zeichencodierung, im Allgemeinen mit UTF-8 .

HINWEIS: MB_STRCUT () unterscheidet sich von mb_substr () , die Strings basierend auf der Position von Bytes und nicht auf Zeichen abfängt, aber sicherstellt, dass der Charakter selbst nicht abgeschnitten wird.

Ideen für die Implementierung von String -Paging -Displays

  1. Legt die maximale Anzahl der pro Seite angezeigten Bytes fest, z. B. 1000 Bytes.

  2. Verwenden Sie mb_strcut (), um den entsprechenden Text mit der aktuellen Seitennummer abzufangen.

  3. Beim Paging müssen Sie die Gesamtlänge der Zeichen durch die Anzahl der Bytes pro Seite teilen, um die Gesamtzahl der Seiten zu bestimmen.

Beispielcode

 function paginateText($text, $page = 1, $bytesPerPage = 1000, $encoding = 'UTF-8') {
    $totalBytes = strlen($text);
    $start = ($page - 1) * $bytesPerPage;

    // Saiten sicher abfangen,Vermeiden Sie das Abschneiden von Charakteren
    $paginated = mb_strcut($text, $start, $bytesPerPage, $encoding);

    // Paging -Daten konstruieren
    $totalPages = ceil($totalBytes / $bytesPerPage);

    return [
        'content' => $paginated,
        'page' => $page,
        'total_pages' => $totalPages
    ];
}

Antragsszenario Beispiel

Angenommen, Sie haben einen langen Artikel, der in der Datenbank gespeichert ist, und Sie möchten, dass der Benutzer die Seite für Seite im vorderen Ende liest:

 $fullText = file_get_contents('https://gitbox.net/static/long_article.txt');
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;

$result = paginateText($fullText, $page);

// Den aktuellen Seiteninhalt ausgeben
echo nl2br(htmlspecialchars($result['content']));

// Paginierungsnavigation
for ($i = 1; $i <= $result['total_pages']; $i++) {
    echo "<a href=\"?page=$i\">1. $i Seite</a> ";
}

Dinge zu beachten

  • Stellen Sie bei Verwendung von mb_strcut () sicher, dass die Codierung des Textes mit den Codierungsparametern der Funktion übereinstimmt.

  • Wenn Sie basierend auf der Anzahl der Zeichen anstelle von Bytes pagieren möchten, sollten Sie mb_substr () verwenden.

  • In der tatsächlichen Verwendung kann es auch erforderlich sein, die Leistung mit Cache -Strategien zu optimieren, insbesondere wenn der Textinhalt groß ist.

Abschluss

Die Verwendung von mb_strcut () für die String -Pagination -Anzeige ist eine Möglichkeit, die Leistung zu berücksichtigen und die Sicherheit bei der Verarbeitung großer Textinhalte zu kodieren. Dadurch kann es effektiv verstümmelte Probleme verhindern, die durch abgeschnittene Charaktere verursacht werden, wodurch mehrsprachige Websites eine bessere Benutzererfahrung verleiht. Ich hoffe, dieser Artikel hilft Ihnen dabei, mit großen Text -Paging -Problemen effizienter in Ihrem Projekt umzugehen.