Autor Zpráva
Milhauscorpse
Profil *
Dobrý den.Hledal jsem dlouho tady i na googlu,ale stejně sem nenašel řešení pro můj problém.Jde o zkrácení dlouhých slov z formuláře.Vím že text uložím do pole,rozdělím na slova,všechny projdu a slova delší než např 20 znaků rozdělím mezerou.Jak ale zabránit tomu,aby se mi zkrátil např.odkaz?Text ukládám do databáze.Díky za radu,nebo odkaz,podle kterého bych se chytnul.
Milhauscorpse
Str4wberry
Profil
Je nějaký důvod slova zkracovat? (Tady na diskusi jsem funkci zkracování vypnul, protože kazila odkazy, a žádné problémy to nepřineslo.)

Pokud si procházíš slovo po slově, tak jej můžeš testovat, zda nevypadá jako odkaz. Třeba hledat charakteristické znaky jako „http://“ nebo „www.“, případně použít přímo nějaký komplexní regulární výraz.
Milhauscorpse
Profil *
Chtěl jsem zkracovat příliš dlouhá slova před uložením do databáze aby mi pak nerozhodilo stránky když někdo napíše třeba ooooooooooooooooooooooooooooooooooooooooooooooooo.
Str4wberry
Profil
A je to reálná hrozba, nebo spíš teoretický problém?
Milhauscorpse
Profil *
Reálná hrozba.Když mám třeba komentáře jako zde:http://frontstage.cz/new/videa.php?id=1340622366#komentare.
jenikkozak
Profil
A nehledáš spíš způsob, jak podobné nesmysly mazat?
Milhauscorpse
Profil *
Teď jsem tě nějak nepochopil?co myslíš,jako že bych už při odesílání formuláře slova která budou mít víc znaků ani neukládal?
Alphard
Profil
Třeba nějak takhle
  // http://cz.php.net/manual/en/function.wordwrap.php#75177
  public static function breakLongWords($str, $maxLength = 20, $char = ' ')
  {
    $words = explode(' ', $str);
    foreach ($words as &$word)
    {
      if (!\Nette\Utils\Validators::isUrl($word)) // Nette asi nepužíváte, tak nahradit regulárem
      {
        $word = wordwrap($word, $maxLength, $char, true);
      }
    }
    
    return implode(' ', $words);
  }

[#4] Str4wberry
Tahle diskuse je silně moderovaná, někdy se nějaké řešení může hodit, neříkám, že nutně tohle.
Milhauscorpse
Profil *
Alphard:

Tak jsem ještě hledal a tady je přesné řešení mého problému:
NE-dělení slov při vložení příspěvku do návštěvní knihy..

Díky moc

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0