21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
Lokutus7323
Profil *
Dobrý den,
chtěl bych se zeptat, zda existuje možnost(třeba nějaká funkce v PHP) ..která by mi otočila vstupní řeťězec..


Například:
vstupní slovo by bylo : ahoj
a script by mi vyhodil: joha
nebo
vstupní: 123
výstupní: 321

Děkuji
Watchick
Profil
echo(strrev("ahoj ")); // output: joha
blbec
Profil *
nebo složitější řešení:

<?php
$u = 'Žluťoučký koňík.';
for($i = 0; $i < mb_strlen($u, 'utf-8'); $i++) {
$a[] = mb_substr($u, $i, 1, 'utf-8');
}
$a = array_reverse($a);
foreach($a as $t) print $t; // .kíňok ýkčuoťulŽ
?>
Watchick
Profil
Ale proč to dělat zdlouhavě, když to jde jednoduše a je na to speciálně funkce? :)
blbec
Profil *
protože:

print strrev('Žluťoučký koňík.'); // .k�È�ok ��k��uo��ul��
blbec
Profil *
ale tak záleží, na co to bude :-)
Watchick
Profil
blbec
to to vážně dělá?
není to chybou formátování?
blbec
Profil *
já jsem to zkusil. tady je kód:

<html><head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<meta http-equiv="Content-Language" content="cs" />
		</head><body>
		
		<?php
$u = 'Žluťoučký koňík.';

for($i = 0; $i < mb_strlen($u, 'utf-8'); $i++) {
$a[] = mb_substr($u, $i, 1, 'utf-8');
}
$a = array_reverse($a);
foreach($a as $t) print $t; // .kíňok ýkčuoťulŽ 

print '<br />'.strrev($u);

?>
</body></html>


a tady je výsledek: http://83.208.153.155:20080/utf.php
blbec
Profil *
snad není chyba u mně :-D to bych se pěkně ztrapnil. zas takovej PHP Guru nejsem
Watchick
Profil
http://travian.damak.cz/test/diskuze.php
tedy v meta tagu jsem dal kódování 1250, a u tebe to specifické utf-8, a jede to obojí...
Takže si myslím, že by šlo vošéfovat nějakým způsobem i v utf-8

Je zajímavé, jak takový banální dotaz rozpoutá takovouto diskuzi, a autor se tu jen tak neukaze xD
Watchick
Profil
Post have been deleted
kletely
Profil
blbec
Chyba u teba nie je. No len pri windows-1250 to ide inak nie. Ani keď dám
Header("Content-type: text/html; charset=utf-8;");
Lokutus7323
Profil *
takhle pořebuji to na otočení řady čísel..konkrétně pro něco typu: opiště text z obrázku (obráceně)
fuckin
Profil *
jelikoz v utf ceske znaky nezabiraji jeden bajt ale dva tak proto to zobrazi takovou blbost...
blbec
Profil *
lokotus: tak jestli to máš na captchu, tak použil fce md5() nebo sha1()

Watchkick: Ano, máš naprostou pravdu :-) takže podle mně stačí v UTF_8 místo strrev() použít

function mb_strrev($string)
{
$return = '';
for($i = 0; $i < mb_strlen($u, 'utf-8'); $i++) {
$a[] = mb_substr($u, $i, 1, 'utf-8');
}
$a = array_reverse($a);
foreach($a as $t) return .= $t;
return  $return;
}

ani mb_convert_encoding(strrev($u), 'utf-8') ($u je string) nepomohlo
Lokutus7323
Profil *
Děkuji, za rady všeho typu:) ... problém jsem vyřešil pomocí metody strrev(), protože budu otáčet je řady čísel, takže o kódování nemusím mít strach.


Ještě jednou děkuji všem, převážně pak Watchick(ovi)
blbec
Profil *
http://stackoverflow.com/questions/434250/how-to-reverse-a-unicode-string
Watchick
Profil
haha :D
Watchick: 1
Jupí
net-vor
Profil *
blbec:
function mb_strrev($string)
{
$return = '';
for($i = 0; $i < mb_strlen($u, 'utf-8'); $i++) {
$a[] = mb_substr($u, $i, 1, 'utf-8');
}
$a = array_reverse($a);
foreach($a as $t) return .= $t;
return $return;
}

Tahle funkce je nesmyslná a nefunguje. Posílám lepší, funkční:
	function mb_strrev($string)
	{
		for ($i = 0; $i < mb_strlen($string, 'utf-8'); $i++)
		{
			$a[] = mb_substr($string, $i, 1, 'utf-8');
		}
		$a = array_reverse($a);
		return implode("", $a);
	}


tvorba webových stránek - net-vor.cz

Moderátor nightfish: Odkaz jsem odstranil, nesouvisí s tématem.
__construct
Profil
Na čo vyťahuješ staré vlákno ?
Na čo sem strkáš odkaz na svoje stránky ?
Alphard
Profil
[#20] __construct
O tom odkazu hodně přemýšlím, jestli tolerovat, nebo ne. Ale v doplnění i starého tématu o funkční (lepší, další) řešení není problém.
nightfish
Profil
Alphard:
O tom odkazu hodně přemýšlím, jestli tolerovat, nebo ne.
Odkaz přímo nesouvisí s řešeným problémem, jsem pro smazání.

Ale v doplnění i starého tématu o funkční (lepší, další) řešení není problém.
jsem jediný, komu připadne zbytečné cpát ty znaky do pole?
function mb_strrev($string)
{
  $vystup = '';
  for ($i = mb_strlen($string, 'utf-8') - 1; $i >= 0; $i--)
  {
    $vystup .= mb_substr($string, $i, 1, 'utf-8');
  }
  return $vystup;
}

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0