Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 13. diel - Funkcie pre prácu s reťazcami v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Outsider
Člen
Avatar
Outsider:10.3.2021 16:39

Já to mám obráceně s "mb_". :D Mě mb_strlen() spočítá "Černé díry jsou tam, kde bůh dělil nulou." jako 33 znaků. Pokud vyměním písma s čárkama a háčky za ty bez, je to v pořádku. Udá mi 40 znaků. Strlen() mi funguje správně... :/

Avatar
Outsider
Člen
Avatar
Outsider:16.3.2021 0:39

Vážně nikdo netuší ? :/ Asi takhle, funkce s "mb_" prefixem mi nejdou za to bez něho je to bez problému.

Avatar
t.teichmanova:3.4.2021 17:45
Ahoj, tak jsem se opět pokusila o nějaký prográmek. Vím, že pro práci s řetězci je asi více funkcí. Ty, které považuju za za základní, jsem dala 'pod jednu střechu'. No je to jenom pokus.

Můj zdroják :

1. StringFce.html

<!DOCTYPE html>
<html lang="sk">
 <head>
 <meta charset="UTF-8">
 <title>ciselne soustavy</title>
 </head>
 <body>

 <form method="POST" action="CaseString.php">
 <h3><b><i>Práce s řetězci</i></b></h3>
 <hr>
 <b>Zadaný řetězec: </b><input name="string" type="string"   style="width: 500px;" /><br /><br />
 <select name="operace">
 <option value="strlen">Délka řetězce</option>
 <option value="wordcount">Počet slov v řetězci</option>
 <option value="strrev">Obrácený řetězec</option>
 <option value="strpos">Pozice slova  v řetězci</option>
 <option value="replace">Nahrazení slova v řetězci</option>

 </select><br /><br />
 <input type="submit" value="Výpis" />
 </form>

 </body>
</html>

2.CaseString.php

 <?php

 $string = $_POST['string'];
 $operace = $_POST['operace'];

 switch ($operace)
{
 case 'strlen':
   echo "Délka řetězce: ". strlen("string"). "<br>";
 break;

 case 'wordcount':
   echo "Počet slov v řetězci: " .str_word_count(" $string") . "<br>";
 break;

  case 'strrev':
   echo "Obrácený řetězec: " .strrev(" $string")."<br>";
 break;

 case 'strpos':
   echo "Pozice slova  v řetězci: ". strpos(" $string"). "<br>";
 break;

  case 'replace':
   echo "Nahrazení slova v řetězci: ".str_replace("$string"). "<br>";
 break;
 }

 ?>
Avatar
t.teichmanova:3.4.2021 18:38
Ahoj dnes podruhé. Trochu jsem upravila miniprogram pro výpis čísel pomocí 'explode',
což se ve vašem prográmku neprojeví a následně součet zadaných čísel.

<?php
mb_internal_encoding("UTF-8");
$vstup = "1,5,87,65,42,4,456,8,5,98,54,89";
$cisla = explode(',', $vstup);

echo "Výpis čísel: ".$vstup."<br>";
echo "Součet čísel: " .array_sum($cisla);
?>
Avatar
Dušan Kovářík:1.7.2021 7:23

Parádní článek, díky :) Všechno důležité stručně, jasně a dokonce si ty názvy funkcí i pamatuju :D

Avatar
Jaromír Volko:8.3.2022 22:41

Podle mého názoru by měl být výraz:

Získali jsme podřetězec od 9. znaku, dlouhý 7 znaků.

ve skutečnosti:

Získali jsme podřetězec od 10. znaku, dlouhý 7 znaků.

Asi jste zapomněli na 0

Avatar
Jan Štěch
Člen
Avatar
Jan Štěch:3.8.2022 10:49

V zastaralých učebnicích a tutoriálech naleznete použití funkcí bez prefixu mb_. Tedy místo mb_strlen() jen strlen(). Tyto funkce nikdy nepoužívejte, jelikož neumí UTF-8 a budou vám vracet špatný výstup.

Tohle kategorické odmítnutí mi nepřijde úplně moudré. strlen() má svůj význam i u multibyte stringů, jelikož vrací informaci o tom, kolik bajtů zabírá daný řetězec v paměti. Ačkoliv při práci s řetězcem v PHP skutečně chcete vidět všechny české znaky jako jeden znak, při ukládání řetězců do databáze je potřeba dávat pozor na velikost řetězce a ne jeho délku. Například pokud máme pole "jmeno" typu VARCHAR a nastavenou velikostí 15, mb_strlen() nám o řetězci "Štěpán Novotný" poví, že je dlouhý 14 znaků a my nabydeme domění, že se do databázového pole vejde. Nicméně při kódování ASCII má jmeno 18 bajtů a v databázi se tak uloží jenom "Štěpán Novot".

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 7 správy z 17.