numerische Zeichenreferenzen

Hallo NG,

gibt es in Php eine Funktion, einen Text in numerische Zeichenreferenzen
umzuwandeln?

Also eine Funktion, die "Hallo" zu "Hallo"
umwandelt.

Danke für die Hilfe!

Gruß
Chris
Chris Kraft [ Di, 16 Oktober 2007 11:48 ] [ ID #1846485 ]

Re: numerische Zeichenreferenzen

Chris Kraft schrieb:

> gibt es in Php eine Funktion, einen Text in numerische Zeichenreferenzen
> umzuwandeln?
>
> Also eine Funktion, die "Hallo" zu "Hallo"
> umwandelt.

Nicht, dass ich wüsste. Lässt sich aber mit einem kleinen 3-Zeiler
selber schreiben :-)

Gruß. Claus
Claus Reibenstein [ Di, 16 Oktober 2007 12:45 ] [ ID #1846490 ]

Re: numerische Zeichenreferenzen

Am 16.10.2007, 12:45 Uhr, schrieb Claus Reibenstein <4spammersonly [at] web.de>:
> Nicht, dass ich wüsste. Lässt sich aber mit einem kleinen 3-Zeiler
> selber schreiben :-)

Stimmt, Danke. Kannte nur bisher die Funktion ord nicht :)

Gruß
Chris

***
function character_reference_numeric ($text) {
$codiert = "";
for ($i=0; $i<strlen($text); $i++)
$codiert .= '&#'.ord(substr($text, $i)).';';
return $codiert;
}
Chris Kraft [ Di, 16 Oktober 2007 13:59 ] [ ID #1846491 ]

Re: numerische Zeichenreferenzen

Chris Kraft schrieb:
> Hallo NG,
>
> gibt es in Php eine Funktion, einen Text in numerische Zeichenreferenzen
> umzuwandeln?
>
> Also eine Funktion, die "Hallo" zu "Hallo"
> umwandelt.

Eine direkte Funktion gibt es nicht, aber viele Möglichkeiten, es selbst zu bewerkstelligen. Nachfolgend drei Möglichkeiten:

<?php
$in = "Hallo";

// for
for ($i=0,$out='',$l=strlen($in);$i<$l;$out.='&#'.ord($in{$i}).';',++$i);
echo $out,"\n";

// split/implode
$arr = str_split($in);
foreach ($arr as &$val) $val = '&#'.ord($val).';';
$out = implode ($arr);
echo $out,"\n";

// unpack/vsprintf
$p = unpack ("C*", $in);
$out = vsprintf(str_repeat('&#%d;',count($p)),$p);
echo $out,"\n";
?>

viele grüße
ralph
rkhbng [ Di, 16 Oktober 2007 14:03 ] [ ID #1846493 ]

Re: numerische Zeichenreferenzen

Chris Kraft <spamaround [at] nurfuerspam.de> wrote:
> Also eine Funktion, die "Hallo" zu "Hallo"
> umwandelt.

Aus Spaß in Factor (http://factorcode.org/):


: string>numentitystring (str -- str)
[ [ "&#" % number>string % ";" % ] each ] "" make ;


"Hallo" string>numentitystring .

"Hallo"


--
Web (en): http://www.no-spoon.de/ -*- Web (de): http://www.frell.de/
Stefan Scholl [ Di, 16 Oktober 2007 16:08 ] [ ID #1846498 ]
PHP » de.comp.lang.php.misc » numerische Zeichenreferenzen

Vorheriges Thema: Whitespace "im" String selbst entfernen (nicht am Anfang oder Ende)
Nächstes Thema: Reguläre Ausdrücke - Zeichenfolge ausschließen