Autor Zpráva
hajk
Profil *
Používám utf-8 (PHP 5.2) a potřebuji do proměnné načítat vše před poslední mezerou v řetězci viz příklad:

$text = "nějaký text o žluťoučkém koníčkovi třeba";


očekávaný výsledek:


$promenna = "nějaký text o žluťoučkém koníčkovi";

Díky, začínám ;-)
Taps
Profil
hajk:
Níže uvádím dvě řešení
<?
$text = "nějaký text o žluťoučkém koníčkovi třeba";
$slova = explode(" ",$text);
$posledni  = array_pop($slova);
unset($posledni);

    foreach($slova as $s){
    $obsah[] = $s;
}    
echo implode(" ",$obsah);    
    
?>
a další může být toto
<?
<?php 
$text = "nějaký text o žluťoučkém koníčkovi třeba";

if(strrpos($text," ") !== false){
 $posledni = strrpos($text," ");
}    
    echo substr($text,0,$posledni);
?>
?>
hajk
Profil *
děkuji, akorát abych měl jasno, používám kódování utf-8 a někde jsem četl že funkce substr() počítá nějak špatně s tímto kódováním, nebo jsem si to popletl s něčím jiným?

Jdu to vyzkoušet.......
lionel messi
Profil
hajk:
akorát abych měl jasno, používám kódování utf-8 a někde jsem četl že funkce substr() počítá nějak špatně s tímto kódováním, nebo jsem si to popletl s něčím jiným?
Nepoplietol, Tapsove riešenia sú vynikajúce, pre prácu s dvojbajtovým kódovaním jednoducho zameň substr za mb_substr.
Chro.
Profil
Nebo bez substr, strlen, count, cyklů...
$text = 'jedna dva tři čtyři';
$zkraceno = implode(' ', explode(' ', $text, -1));
//hodnota -1 parametru ve funkci explode způsobí ignoraci posledního prvku pole

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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