GoLang addcslashes

is this article helpful? yes | no
GoLang replacement for PHP's addcslashes [Golang Play | edit | history]
// Addcslashes - Quote string with slashes in a C style
func Addcslashes(s string, c string) string {
	var tmpRune []rune
	strRune := []rune(s)
	list := []rune(c)
	for _, ch := range strRune {
		for _, v := range list {
			if ch == v {
				tmpRune = append(tmpRune, '\\')
			}
		}
		tmpRune = append(tmpRune, ch)
	}
	return string(tmpRune)
}

PHP addcslashes

PHP original manual for addcslashes [ show | php.net ]

addcslashes

(PHP 4, PHP 5, PHP 7)

addcslashesQuote string with slashes in a C style

Description

string addcslashes ( string $str , string $charlist )

Returns a string with backslashes before characters that are listed in charlist parameter.

Parameters

str

The string to be escaped.

charlist

A list of characters to be escaped. If charlist contains characters \n, \r etc., they are converted in C-like style, while other non-alphanumeric characters with ASCII codes lower than 32 and higher than 126 converted to octal representation.

When you define a sequence of characters in the charlist argument make sure that you know what characters come between the characters that you set as the start and end of the range.

<?php
echo addcslashes('foo[ ]''A..z');
// output:  \f\o\o\[ \]
// All upper and lower-case letters will be escaped
// ... but so will the [\]^_`
?>
Also, if the first character in a range has a higher ASCII value than the second character in the range, no range will be constructed. Only the start, end and period characters will be escaped. Use the ord() function to find the ASCII value for a character.
<?php
echo addcslashes("zoo['.']"'z..A');
// output:  \zoo['\.']
?>

Be careful if you choose to escape characters 0, a, b, f, n, r, t and v. They will be converted to \0, \a, \b, \f, \n, \r, \t and \v, all of which are predefined escape sequences in C. Many of these sequences are also defined in other C-derived languages, including PHP, meaning that you may not get the desired result if you use the output of addcslashes() to generate code in those languages with these characters defined in charlist.

Return Values

Returns the escaped string.

Changelog

Version Description
5.2.5 The escape sequences \v and \f were added.

Examples

charlist like "\0..\37", which would escape all characters with ASCII code between 0 and 31.

Example #1 addcslashes() example

<?php
$escaped 
addcslashes($not_escaped"\0..\37!@\177..\377");
?>

See Also