How can I convert Persian/Arabic digits from the string to English digits?
I have a website in Persian. The keyboard of my website's users is in Persian (or Arabic) usually. So their password will not get matched sometimes.
I have a function for their username (cell-phone number) which converts Persian/Arabic digits to English:
function convert_digits_to_en($entry){
$fmt = numfmt_create('fa', NumberFormatter::DECIMAL);
return numfmt_parse($fmt, $entry);
}
It will work if the entry contains all digits.
i.e. ۰۹۱۲۳۵۶۵۴۹۸
will be converted to 09123565498
as well.
The problem is when the entry contains both characters and digits (like a password). i.e. test۰۹۱۲
. I need to convert it to test0912
. My current function returns an empty string for that entry. Any idea how can I fix it?
php
add a comment |
I have a website in Persian. The keyboard of my website's users is in Persian (or Arabic) usually. So their password will not get matched sometimes.
I have a function for their username (cell-phone number) which converts Persian/Arabic digits to English:
function convert_digits_to_en($entry){
$fmt = numfmt_create('fa', NumberFormatter::DECIMAL);
return numfmt_parse($fmt, $entry);
}
It will work if the entry contains all digits.
i.e. ۰۹۱۲۳۵۶۵۴۹۸
will be converted to 09123565498
as well.
The problem is when the entry contains both characters and digits (like a password). i.e. test۰۹۱۲
. I need to convert it to test0912
. My current function returns an empty string for that entry. Any idea how can I fix it?
php
I just had a déjà vu, I've definitely seen this / similar question asked today and it was suggested to use client side and not PHP. Edit: Turns out it was something else, similar but not same: stackoverflow.com/questions/53264154/…
– Script47
Nov 15 '18 at 15:35
regex is probably best suited for this.
– noid
Nov 15 '18 at 15:37
1
Possible duplicate of convert Persian/Arabic numbers to English numbers
– Erik Kalkoken
Nov 15 '18 at 15:44
add a comment |
I have a website in Persian. The keyboard of my website's users is in Persian (or Arabic) usually. So their password will not get matched sometimes.
I have a function for their username (cell-phone number) which converts Persian/Arabic digits to English:
function convert_digits_to_en($entry){
$fmt = numfmt_create('fa', NumberFormatter::DECIMAL);
return numfmt_parse($fmt, $entry);
}
It will work if the entry contains all digits.
i.e. ۰۹۱۲۳۵۶۵۴۹۸
will be converted to 09123565498
as well.
The problem is when the entry contains both characters and digits (like a password). i.e. test۰۹۱۲
. I need to convert it to test0912
. My current function returns an empty string for that entry. Any idea how can I fix it?
php
I have a website in Persian. The keyboard of my website's users is in Persian (or Arabic) usually. So their password will not get matched sometimes.
I have a function for their username (cell-phone number) which converts Persian/Arabic digits to English:
function convert_digits_to_en($entry){
$fmt = numfmt_create('fa', NumberFormatter::DECIMAL);
return numfmt_parse($fmt, $entry);
}
It will work if the entry contains all digits.
i.e. ۰۹۱۲۳۵۶۵۴۹۸
will be converted to 09123565498
as well.
The problem is when the entry contains both characters and digits (like a password). i.e. test۰۹۱۲
. I need to convert it to test0912
. My current function returns an empty string for that entry. Any idea how can I fix it?
php
php
edited Nov 15 '18 at 15:41
Martin AJ
asked Nov 15 '18 at 15:33
Martin AJMartin AJ
2,1521030
2,1521030
I just had a déjà vu, I've definitely seen this / similar question asked today and it was suggested to use client side and not PHP. Edit: Turns out it was something else, similar but not same: stackoverflow.com/questions/53264154/…
– Script47
Nov 15 '18 at 15:35
regex is probably best suited for this.
– noid
Nov 15 '18 at 15:37
1
Possible duplicate of convert Persian/Arabic numbers to English numbers
– Erik Kalkoken
Nov 15 '18 at 15:44
add a comment |
I just had a déjà vu, I've definitely seen this / similar question asked today and it was suggested to use client side and not PHP. Edit: Turns out it was something else, similar but not same: stackoverflow.com/questions/53264154/…
– Script47
Nov 15 '18 at 15:35
regex is probably best suited for this.
– noid
Nov 15 '18 at 15:37
1
Possible duplicate of convert Persian/Arabic numbers to English numbers
– Erik Kalkoken
Nov 15 '18 at 15:44
I just had a déjà vu, I've definitely seen this / similar question asked today and it was suggested to use client side and not PHP. Edit: Turns out it was something else, similar but not same: stackoverflow.com/questions/53264154/…
– Script47
Nov 15 '18 at 15:35
I just had a déjà vu, I've definitely seen this / similar question asked today and it was suggested to use client side and not PHP. Edit: Turns out it was something else, similar but not same: stackoverflow.com/questions/53264154/…
– Script47
Nov 15 '18 at 15:35
regex is probably best suited for this.
– noid
Nov 15 '18 at 15:37
regex is probably best suited for this.
– noid
Nov 15 '18 at 15:37
1
1
Possible duplicate of convert Persian/Arabic numbers to English numbers
– Erik Kalkoken
Nov 15 '18 at 15:44
Possible duplicate of convert Persian/Arabic numbers to English numbers
– Erik Kalkoken
Nov 15 '18 at 15:44
add a comment |
2 Answers
2
active
oldest
votes
A non-regex solution would be this:
function convert_digits_to_en($input)
{
$arabic = ['۰' => 0, '۱' => 1];
return strtr($input, $arabic);
}
echo convert_digits_to_en('test۱۰۰'); // test100
Note: You'd need to add in the numbers to that array, my Persian / Arabic is not that good.
Live Example
Repl
Reading Material
strtr
add a comment |
you can use your string as array and iterate them like:
function convert_digits_to_en($entry){
$result = '';
$fmt = numfmt_create('fa', NumberFormatter::DECIMAL);
foreach((array)$entry as $value){
$transform_digit = numfmt_parse($fmt, $value);;
$result = empty($transform_digit) ? $value : $transform_digit;
}
return $result;
}
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53322805%2fhow-can-i-convert-persian-arabic-digits-from-the-string-to-english-digits%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
A non-regex solution would be this:
function convert_digits_to_en($input)
{
$arabic = ['۰' => 0, '۱' => 1];
return strtr($input, $arabic);
}
echo convert_digits_to_en('test۱۰۰'); // test100
Note: You'd need to add in the numbers to that array, my Persian / Arabic is not that good.
Live Example
Repl
Reading Material
strtr
add a comment |
A non-regex solution would be this:
function convert_digits_to_en($input)
{
$arabic = ['۰' => 0, '۱' => 1];
return strtr($input, $arabic);
}
echo convert_digits_to_en('test۱۰۰'); // test100
Note: You'd need to add in the numbers to that array, my Persian / Arabic is not that good.
Live Example
Repl
Reading Material
strtr
add a comment |
A non-regex solution would be this:
function convert_digits_to_en($input)
{
$arabic = ['۰' => 0, '۱' => 1];
return strtr($input, $arabic);
}
echo convert_digits_to_en('test۱۰۰'); // test100
Note: You'd need to add in the numbers to that array, my Persian / Arabic is not that good.
Live Example
Repl
Reading Material
strtr
A non-regex solution would be this:
function convert_digits_to_en($input)
{
$arabic = ['۰' => 0, '۱' => 1];
return strtr($input, $arabic);
}
echo convert_digits_to_en('test۱۰۰'); // test100
Note: You'd need to add in the numbers to that array, my Persian / Arabic is not that good.
Live Example
Repl
Reading Material
strtr
answered Nov 15 '18 at 15:44
Script47Script47
9,23142246
9,23142246
add a comment |
add a comment |
you can use your string as array and iterate them like:
function convert_digits_to_en($entry){
$result = '';
$fmt = numfmt_create('fa', NumberFormatter::DECIMAL);
foreach((array)$entry as $value){
$transform_digit = numfmt_parse($fmt, $value);;
$result = empty($transform_digit) ? $value : $transform_digit;
}
return $result;
}
add a comment |
you can use your string as array and iterate them like:
function convert_digits_to_en($entry){
$result = '';
$fmt = numfmt_create('fa', NumberFormatter::DECIMAL);
foreach((array)$entry as $value){
$transform_digit = numfmt_parse($fmt, $value);;
$result = empty($transform_digit) ? $value : $transform_digit;
}
return $result;
}
add a comment |
you can use your string as array and iterate them like:
function convert_digits_to_en($entry){
$result = '';
$fmt = numfmt_create('fa', NumberFormatter::DECIMAL);
foreach((array)$entry as $value){
$transform_digit = numfmt_parse($fmt, $value);;
$result = empty($transform_digit) ? $value : $transform_digit;
}
return $result;
}
you can use your string as array and iterate them like:
function convert_digits_to_en($entry){
$result = '';
$fmt = numfmt_create('fa', NumberFormatter::DECIMAL);
foreach((array)$entry as $value){
$transform_digit = numfmt_parse($fmt, $value);;
$result = empty($transform_digit) ? $value : $transform_digit;
}
return $result;
}
answered Nov 15 '18 at 15:48
epischepisch
304114
304114
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53322805%2fhow-can-i-convert-persian-arabic-digits-from-the-string-to-english-digits%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
I just had a déjà vu, I've definitely seen this / similar question asked today and it was suggested to use client side and not PHP. Edit: Turns out it was something else, similar but not same: stackoverflow.com/questions/53264154/…
– Script47
Nov 15 '18 at 15:35
regex is probably best suited for this.
– noid
Nov 15 '18 at 15:37
1
Possible duplicate of convert Persian/Arabic numbers to English numbers
– Erik Kalkoken
Nov 15 '18 at 15:44