Autor Zpráva
xciza
Profil
Ahoj,
hledám, ale asi špatně protože nemohu najít fci který by mě ořízla řetězec od určitého znaku do konce.
Jak se ta funkce jmenuje a funguje(kam zadat znak pro oříznutí atd)?

Díky
Kubo2
Profil
substr a strpos | str_replace

Použitie asi nasledovné:
<?php
// uloženie reťazca
$text = "text ktorého časť je orezaná";

// pozícia znaku, od ktorého sa má orezať
$startPos = strpos($text, 'k');

// orezanie
$orezatText = substr($text, $startPos);
$orezanyText = str_replace($orezatText, '', $text);
echo $orezanyText;
// vypíše "text"
?>



Alebo jednoduchšie:
<?=substr($text, 0, strpos($text, 'k'))?>
Kubo2
Profil
xciza:
Existuje (stiahnuť).
Tori
Profil
Případně explode a použít první prvek výsledku.
↓ ad [#6]: od PHP 5.4.
edit2: A v té funkci ve [#3] by mělo být: return false === $fromChar ? $str : substr($str, 0, $fromChar+1);, anebo ještě lépe, přičíst délku hledaného podřetězce.
Kubo2
Profil
Tori, xciza:
Pre úplnosť:
$orezany = explode('k', $text)[0];
Chro
Profil
Kubo2 [#5]:
Tenhle trik jsem neznal a většinou používal pro přiřazení hodnoty z pole do proměnné konstrukci list(). Díky.
DJ Miky
Profil
Chro:
Tato zkratka byla zavedena v PHP 5.4, které ještě nepotkáš úplně všude, tak musíš dávat pozor na verzi.
Kubo2
Profil
Tori:
To záleží od toho, či chceš do výsledného reťazca zahrnúť aj znak, ktorého pozícia je v $fromChar.
Citujem sám svoj dokumentačný komentár:
<?php
/**
 ...
 * @param string $fromChar Znak, vrátane ktorého má byť odstránený text až do konca reťazca
...
*/
Tori
Profil
Kubo2:
Aha, pardon, phpdoc jsem nečetla.
xciza
Profil
Ještě jsem zapoměl dodat že potřebuju pracovat s tou částí od znaku do konce...
Kubo2
Profil
xciza:
Tak to ti postačí aj obyčajné substr.

Príklad:
<?
// vypíše "World"
echo substr("Hello World", 6);
Davex
Profil
Nebo

<?php
  echo strstr("Hello World", "W");
smid83
Profil *
Davex:
Ahoj ono to funguje ale já bych potřeboval aby echo strstr("Hello World", "W");zobrazovalo ještě bez toho W aby se zobrazovalo vše až potom písmenku šlo by to?diky
Davex
Profil
smid83:
Asi nějak takto:

<?php
  $domena = substr(strstr("e-mail@example.com", "@"), 1);

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: