Portrety Uliczne Nieznajomych - zobacz wyjątkową galerię portretów z warszawskich ulic
ZALOGUJ SIĘ
login:
hasło:
przypomnij hasło
załóż konto użytkownika
(i zobacz kilka porad gratis)
   
WYSZUKIWARKA I DZIAŁY
całe porady  tytuły
zaznacz działy do przeszukania
(brak wyboru = wszystkie działy)
PHP
MySQL >
PostgreSQL
SQLite
Perl
Java
XML
XSLT
XPath
WML
SVG
RegExp
Wyszukiwarki
Ochrona
VBScript
Google Plus
XHTML/CSS
JavaScript
Grafika
Flash
Photoshop
Windows
Linux
Bash
Apache
Procmail
E-biznes
Explorer
Opera
Firefox
Inne porady
   
KURSY, DOKUMENTACJE
Własne:
XHTML/CSS
JavaScript
ActionScript
WML, RSS, SSI
Pozostałe:
PHP
MySQL
Java API
więcej...
   
użytkowników online: 60
W CZYM MOGĘ POMÓC?


   
OPINIE UŻYTKOWNIKÓW
Z mojej strony serwisowi należy się bardzo mocna pochwała. Nawet późna pora zgłoszenia problemu (23.00) nie przeszkodziła Darkowi w jego rozwiązaniu. Do tego poziom odpisywania na maile jest bardzo wysoki... wszystko wykłada jak cierpliwy nauczyciel. Śmiało mogę przyznać, że zamieszczone na stronach porady są rzeczowo opisane - a nie jak to bywa w innych serwisach mamy sam kod i nic poza tym! Jeszcze raz wielkie dzięki!

Damian Jarosz
Adminer.pl

   
GALERIA FOTOGRAFII
   
PODRĘCZNIK PHP 5.x, 4.x, 3.x - częściowo spolszczony / źródło: www.php.net

[Spis] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [X] [W] [Z]

chr

(PHP 3, PHP 4, PHP 5)

chr -- Return a specific character

Description

string chr ( int ascii )

Returns a one-character string containing the character specified by ascii.

Przykład 1. chr() example

<?php
$str
= "The string ends in escape: ";
$str .= chr(27); /* add an escape character at the end of $str */

/* Often this is more useful */

$str = sprintf("The string ends in escape: %c", 27);
?>

You can find an ASCII-table over here: http://www.asciitable.com.

This function complements ord(). See also sprintf() with a format string of %c.




User Contributed Notes

plugwash at p10link dot net
14-Jan-2006 09:41

bear in mind that php doesn't really care about character sets. php strings are just arbitary byte sequences thier meaning (especailly when you go beyond code 127) depends entirely on whats interpreting the data (in the case of a browser the charset specified in the http headers).


admin at icstrategy dot midgetforhire dot com
08-Jan-2006 07:51

I made a password generator with this function...

<?php
$passlength
= 8;
$pass = "";
$i = 0;
while(
$i <= $passlength)
   {
  
$pass .= chr(rand(33,126));
  
$i++;
   }
echo
$pass;
?>

Ofcourse you can change passlength.

Example of an 8-char password:
AFJ\)t'u}

I realise it isn't compatible for all sites, but most will accept :)


bg at ms dot com
16-Oct-2005 08:20

"If anyone can shed some light on what the difference is, please do."

This is what happens when you give bright young people new power but without old understanding.

A line feed
...........does this.

A carriage return
does this.

The "carriage" is the typewriter (or teletypewriter's) strikehead mechanism.  The "return" means return to leftmost margin; whereas, linefeed means just go down one line but remain at unaltered horizontal position.


php at elijahtech dot com
26-Aug-2005 05:52

Based on Mike's code, here are some handy functions to convert integer numbers into an alphanumeric form based on a custom character set.  Meaning, the array $chrs can include anything, and as long as the same $chrs is used in the decoding, it will always work.  I am using it a condense a generated ID that gets displayed.

e.g., g5 = 997, 10000093 = FXtP -- Much shorter!

Elijah
-----------------------------------------------------------
$chrs = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S' ,'T', 'U', 'V', 'W', 'X', 'Y', 'Z');

function int_to_alph($int, $chrs)
{
  $base = sizeof($chrs);
  do {
   $alph = $chrs[($int % $base)] . $alph;
  } while($int = intval($int / $base));
  return $alph;
}

function alph_to_int($alph, $chrs)
{
  $base = sizeof($chrs);
  for($i = 0, $int = 0; $i < strlen($alph); $i++)
  {
   $int += intval(array_search(substr($alph, strlen($alph) - $i - 1, 1), $chrs)) * pow($base, $i);
  }
  return $int;
}


grey - greywyvern - com
19-Aug-2005 04:55

I spent hours looking for a function which would take a numeric HTML entity value and output the appropriate UTF-8 bytes.  I found this at another site and only had to modify it slightly; so I don't take credit for this.

<?php function unichr($dec) {
  if (
$dec < 128) {
  
$utf = chr($dec);
  } else if (
$dec < 2048) {
  
$utf = chr(192 + (($dec - ($dec % 64)) / 64));
  
$utf .= chr(128 + ($dec % 64));
  } else {
  
$utf = chr(224 + (($dec - ($dec % 4096)) / 4096));
  
$utf .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64));
  
$utf .= chr(128 + ($dec % 64));
  }
  return
$utf;
}
?>

So for example:

<?php

  $str
= "Chinese: &#20013;&#25991;";
 
$str = preg_replace("/&#(\d{2,5});/e", "unichr($1);", $str);

?>


Mike
28-Jun-2005 04:43

Hi out there!

Here are two usefull functions to convert ordinal values to int value and back (unlimited length).

For Example:
'A' = 1
'B' = 2
'C' = 3
'AA' = 27
'ABC' = 731

Convert ordinal value to INT:

function convertAlphabetToInt($alpha_string) {
   $int_wert=0;
   $potenzcounter=0;
   for ($i=strlen($alpha_string);$i>0;$i--) {
       $ordinalwert=(ord(substr($alpha_string,$i-1,1))-64);
       $int_wert+=$ordinalwert*pow(26,$potenzcounter);
       $potenzcounter++;
   }
   return $int_wert;
}

And back from INT to ordinal:

function convertIntToAlphabet($int_wert) {
   if($int_wert%26>=1) {
       $alpha_string=chr(($int_wert%26)+64).$alpha_string;
       $alpha_string=convertIntToAlphabet($int_wert/26).$alpha_string;
   }
   return $alpha_string;
}

This functions will return for example:
convertAlphabetToInt("ABCD") => Output: 19010
convertIntToAlphabet(19010) = Output: "ABCD"

I hope someone can use it :)
Greetings,
Mike


24-May-2005 04:15

If you want to increment your letter, which is stored as a string, you have to convert it back to an integer first.

<?php
   $letter
=strtolower($_GET['letter']);    //You wanted this originally, but not decided you want the previous letter
  
$letter=ord($letter);            //Convert to an integer
  
$letter=chr($letter-1);            //Convert back to a string, but the previous letter (naturally won't work with A or a)
?>


mike at go dot online dot pt
11-Mar-2005 09:18

In addition to what mcusack wrote about new lines in text files under Windows:

<?php
$text
= "First line\r\n";
$text .= "Second line";
echo
$text;
?>
Will output:
First lineSecond line

<?php
$text
= "First line" . chr(13) . chr(10);
$text .= "Second line";
echo
$text;
?>
Will output:
First line
Second line


sarabas at itstudio dot pl
17-Feb-2005 01:26

The following function helped me to generate ascii-only usernames from firstname/lastname containing iso-8859-2 characters. The convertion array was based on contents of 'man iso-8859-2'.

Example: iso2ascii("b&#322;a&#380;ej.&#378;d&#378;b&#322;o") returns "blazej.zdzblo"

function iso2ascii($str) {
 $arr=array(
  chr(161)=>'A', chr(163)=>'L', chr(165)=>'L', chr(166)=>'S', chr(169)=>'S',
  chr(170)=>'S', chr(171)=>'T', chr(172)=>'Z', chr(174)=>'Z', chr(175)=>'Z',
  chr(177)=>'a', chr(179)=>'l', chr(181)=>'l', chr(182)=>'s', chr(185)=>'s',
  chr(186)=>'s', chr(187)=>'t', chr(188)=>'z', chr(190)=>'z', chr(191)=>'z',
  chr(192)=>'R', chr(193)=>'A', chr(194)=>'A', chr(195)=>'A', chr(196)=>'A',
  chr(197)=>'L', chr(198)=>'C', chr(199)=>'C', chr(200)=>'C', chr(201)=>'E',
  chr(202)=>'E', chr(203)=>'E', chr(204)=>'E', chr(205)=>'I', chr(206)=>'I',
  chr(207)=>'D', chr(208)=>'D', chr(209)=>'N', chr(210)=>'N', chr(211)=>'O',
  chr(212)=>'O', chr(213)=>'O', chr(214)=>'O', chr(216)=>'R', chr(217)=>'U',
  chr(218)=>'U', chr(219)=>'U', chr(220)=>'U', chr(221)=>'Y', chr(222)=>'T',
  chr(223)=>'s', chr(224)=>'r', chr(225)=>'a', chr(226)=>'a', chr(227)=>'a',
  chr(228)=>'a', chr(229)=>'l', chr(230)=>'c', chr(231)=>'c', chr(232)=>'c',
  chr(233)=>'e', chr(234)=>'e', chr(235)=>'e', chr(236)=>'e', chr(237)=>'i',
  chr(238)=>'i', chr(239)=>'d', chr(240)=>'d', chr(241)=>'n', chr(242)=>'n',
  chr(243)=>'o', chr(244)=>'o', chr(245)=>'o', chr(246)=>'o', chr(248)=>'r',
  chr(249)=>'u', chr(250)=>'u', chr(251)=>'u', chr(252)=>'u', chr(253)=>'y',
  chr(254)=>'t'
 );
 return strtr($str,$arr);
}


15-Dec-2004 07:04

Same function as suggested by tippy2k/jmartin. tippy2k's code seems to have a syntax error in the function declaration; jmartin's code throws a notice.
So here's yet another version, without temporary variables and loops:

<?
// 1 <= $a <= 702
function col2str($a) {
 return (
$a-->26?chr(($a/26+25)%26+ord('A')):'').chr($a%26+ord('A'));
}

// Example
$colname = col2str(1) // returns "A"
$colname = col2str(27) // returns "AA"
$colname = col2str(702) // returns "ZZ"
?>


jon
15-Sep-2004 01:11

in response to jcokos's function for catching non-Ascii values when converting to entitites for XML.

I have found it better to use htmlspecialchars rather than htmlentities because htmlentities does convert some non-Ascii characters to entitities, for example the copyright symbol. To be fully compliant with XML, the numeric entity should be used, rather than the symbolic version used in htmlentities.

<?php
  
function strictify ( $string ) {

      
$fixed = htmlspecialchars( $string, ENT_QUOTES );

      
$trans_array = array();
       for (
$i=127; $i<255; $i++) {
          
$trans_array[chr($i)] = "&#" . $i . ";";
       }

      
$really_fixed = strtr($fixed, $trans_array);

       return
$really_fixed;

   }
?>


tenyou at gmail dot com
15-Jul-2004 08:05

When having to deal with parsing an IIS4 or IIS5 metabase dump I wrote a simple function for converting those MS hexidecimal values into their ascii counter parts. Hopefully someone will find use for it.

<?php
function hex_decode($string)  {
       for (
$i=0; $i < strlen($string); $i)  {
      
$decoded .= chr(hexdec(substr($string,$i,2)));
      
$i = (float)($i)+2;
       }
return
$decoded;
}
?>


tippy2k
14-May-2004 04:27

Working on the same thing as jmartin today.  701 is the limit of the script, 'ZZ'.  This should work a little faster.  Hope it helps.

<?
function SSkey($xkey+1) {
  
$prefix = chr(floor($xkey+1 / 26)+64);
   if(
$prefix == chr(64)) unset($prefix);
  
$suffix = chr($xkey+1 - (floor($xkey+1 / 26)*26) +64);
   if(
$suffix == chr(64)) {
      
$prefix = chr( ord($prefix) -1);
       if(
$prefix == chr(64)) unset($prefix);
      
$suffix = 'Z';
   }
  
$sskey = "$prefix$suffix";
   return
$sskey;
}
?>


jmartin at prescientsoftware dot com
13-Apr-2004 11:42

Here is a function that will convert column numbers in to a letters for use in a spreadsheet.  It is limited up to 'ZZ' but can easliy by modifed.

<?php
 
function col2chr($a){
       if(
$a<27){
           return
strtoupper(chr($a+96));   
       }else{
           while(
$a > 26){
              
$b++;
              
$a = $a-26;               
           }                 
          
$b = strtoupper(chr($b+96));   
          
$a = strtoupper(chr($a+96));               
           return
$b.$a;
       }
   }
?>


perrodin at laposte dot net
12-Apr-2004 01:20

Note that if the number is higher than 256, it will return the number mod 256.
For example :
chr(321)=A because A=65(256)


goffrie at somewhere dot ca
06-Apr-2004 02:06

ASCII 7 makes a beep.
so
print chr(7);
is useful in long scripts (like ones that download big files) when you want to get the user's attention after a long time of waiting.
---------------------
Me:)
---------------------


mcusack at fastlanecompanies dot com
26-Mar-2004 01:46

when working with output to a windows system i.e. a textfile the end of line "\n" will not return a valid newline that windows will understand (this is due to a lack of standards accross OS types) this is because windows reads new lines as carriage return and an additional char the linefeed the traditional "\n" so in short use the following to produce a new line under a windows text environment "\r\n"

// not tested but this should work in most cases (i think....)

<?php
function win_nl2br($stringtext) {
return
str_replace("\r\n", "<br>", $stringtext);
}

function
win_br2nl($stringtext) {
return
str_replace("<br>", "\r\n", $stringtext);
}
?>

Hope this is as informative to you as it was to me ......


loremaster
09-Sep-2003 10:27

Re: Kristin: Line feed vs carriage return

I may be wrong, it's been a while since I cared about the difference.

Line feeds add a new line below the current carriage position and moves the carriage to it.
Carriage return brings the carriage (or cursor, if you like) to the beginning of the line.

Most mutliline text fields, when you press Enter, you get both a line feed (new line) and a carriage return (return).  Typically I use the strtr function and replace "\n\r" rather than searching for ascii 13 and 10.  There are many ways, of course, so your mileage may vary.


jgray at triangle dash solutions dot com
25-Jul-2003 07:20

Lowercase alphabet:
for($a=97;$a<(97+26);$a++){ echo chr($a); }


infoserv at chollian dot net
25-Jun-2003 05:16

Cutting Korean(2Byte)-String

<?php
function cutStr($str,$len){
   if(
strlen($str) > $len){
      
$str = substr($str,0,$len - 2);
       if(
strlen(substr(strrchr($str," "),1)) % 2)
          
$str = substr($str,0,strlen($str) - 1);
      
$str .= "..";
   }
   return
$str;
}
?>


jcokos
27-Mar-2003 03:12

A quick function that I use to make strings "XML" compliant, changing every special character into their #$... equivalent.

htmlentities doesn't get all of the chars above 127, so the second part of this (which I stole from one of the comments above) finishes the process, returning a nice, xml happy string.

<?php
  
function strictify ( $string ) {

      
$fixed = htmlentities( $string, ENT_QUOTES );

      
$trans_array = array();
       for (
$i=127; $i<255; $i++) {
          
$trans_array[chr($i)] = "&#" . $i . ";";
       }

      
$really_fixed = strtr($fixed, $trans_array);

       return
$really_fixed;

   }
?>

HTH


avenger at php dot net
22-Mar-2003 10:26

I usally used this code to test a Chinese string:

<?php
$chinese_str
= "

 

 
  © 1996-2012 & Reporter.plmiejscao serwisieabonamentwarunki korzystaniaRSSkontakt