PHP Metin Karakterler sınırla nasıl?

4 Cevap php

Ben nasıl HTML maxlength niteliği gibi ama PHP ile kullanıcıların girişini sınırlamak merak ediyordum, örnek iyi olurdu? MySQL varchar bir kullanıcıları karakter girişini sınırlamak için (255) bir yolu var mı? Sadece bunu yapmak için MySQL üzerinde sayma eksileri nelerdir?

4 Cevap

Eğer strlen baktın mı?

$input = $_GET['input'];
if ( strlen($input) > 255 ){
    throw new Exception('Cannot have input exceeding 255 characters');
}

Bir dize uzunluğunu kesecek MySQL üzerinde sayma ana konular hata işleme eksikliğidir. Kullanıcıların giriş uzunluğunda kesilmiş olmuşsa muhtemelen olmak niyetinde değilim ve (muhtemelen) bir hata sayfasını görüntülemek için daha iyi olurdu.

substr($string, $start, $length)

Bu sizin için kısa bir dize kesecek.

$ Başlangıç ​​ilk karakterinden başlamak için 0 olmalıdır

$ Uzunluğu dize olmak istiyorum nasıl uzun.

Pasif haber vermeden girdi kısaltarak kötü. Bir hata atma iyidir. Ama bence en iyi çözüm ilk etapta çok fazla yazarak kullanıcıyı tutmaktır. Bu alanlar için kolaydır:

<input maxlength="255" />

Tarayıcıların çoğu bundan daha yazarak kullanıcı önleyecektir. <textarea> sınırlamak için daha zordur, ancak bazı basit javascript ile yapılabilir. Twitter yapar. Textarea üzerinde bir karakter sayısını gösterir ki, şu örneği ele alalım:

<html>

<script type="text/javascript">
  function numberOfCharacters(textbox,limit,indicator) {
    chars = document.getElementById(textbox).value.length;
    document.getElementById(indicator).innerHTML = limit-chars;
  }
</script>

<body>
  <label for="mytextbox">
    Message (140 char. max.)
    <span id="characterlimit">140</span>
  </label>
  <br/>
  <textarea id="mytextbox" rows="2" cols="40" onkeyup="numberOfCharacters('mytextbox',140,'characterlimit');"></textarea>
</body>

</html>

Bu ham örnek karakter sınırı zorlamak değil, ama bu sınırı kullanıcıya bildirmek yapar. Kullanıcı uyarıyı dikkate almayıp yine sınırını aşarsa bir hata atmak için Yacoby en strlen () örneği ile birlikte bu kullanın. Bu noktada aşırı yazarak önlemek için bütün yaptık ve kullanıcı sadece suçlu kendini sahiptir.

Bir karakter sınırını empoze için gidiyoruz, o türde bir roman önce kullanıcıya bildirmek için, ve onun için sayısını tutmak için ortak bir nezaket olduğunu.

strlen () tüm PHP yavaş işlevlerinden biridir. En iyi çözüm:

<?php
$text = "some text";
if (isset($text[255])) {
    echo 'Text is too long. It should be no longer than 255 characters';
}
?>