如何通过PHP将正文或网站html中的整数替换为波斯数字?
我想用我的网站中的所有页面替换所有数字。
代码:
function ta_persian_num($string) {
//arrays of persian and latin numbers
$persian_num = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
$latin_num = range(0, 9);
$string = str_replace($latin_num, $persian_num, $string);
return $string;
}
我的代码适用于客户端:
<script>
$(document).ready(function(){
persian={0:'۰',1:'۱',2:'۲',3:'۳',4:'۴',5:'۵',6:'۶',7:'۷',8:'۸',9:'۹'};
function traverse(el){
if(el.nodeType==3){
var list=el.data.match(/[0-9]/g);
if(list!=null && list.length!=0){
for(var i=0;i<list.length;i++)
el.data=el.data.replace(list[i],persian[list[i]]);
}
}
for(var i=0;i<el.childNodes.length;i++){
traverse(el.childNodes[i]);
}
}
traverse(document.body);
});
</script>
答案 0 :(得分:4)
您最好将此功能移至前端使用javascript:
basketDict = {}
shopDict = {"Fruit": {"Apple": "2", "Banana": "3"},
"Vegetables": {"Lettuce": "5", "Potato": "7"}}
userQuery = input("What food do you want to check for? ")
for category, food in shopDict.items():
shopCheck = []
for each in food:
shopCheck.append(each)
if userQuery not in shopCheck:
print("That's not available.")
else:
print(userQuery + " added to basket. ")
basketDict[category] = {userQuery:food[userQuery]}
print(basketDict)
例如:https://codepen.io/anon/pen/rQWGRd
或者您可以将此功能包含在所有页面上的任何js文件中。
您的body标签还应该具有如下所示的onload属性:
<script type="text/javascript">
var replaceDigits = function() {
var map = ["&\#1776;","&\#1777;","&\#1778;","&\#1779;","&\#1780;", "&\#1781;","&\#1782;","&\#1783;","&\#1784;","&\#1785;"]
document.body.innerHTML = document.body.innerHTML.replace(/\d(?=[^<>]*(<|$))/g, function($0) { return map[$0]});
}
window.onload = replaceDigits;
</script>
答案 1 :(得分:4)
在PHP中最好的方法是使用正则表达式:
$string='salam 1 23 12';
$persian_num = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
for($i=0;$i<10;$i++){
$string = preg_replace("/$i/", $persian_num[$i], $string);
}
print($string);
上面的代码,用您在波斯语中指定的字符替换所有英文数字。
答案 2 :(得分:3)
✅通过以下方式解决了我的问题:
1:使用FontCreator 9或10程序。
2:在FontCreator中打开字体。
3:转到数字标签。
4:在英语数字上粘贴您的RTL语言数字(波斯语/希伯来语/阿拉伯语)。
享受无任何功能...功能/额外处理。
更新:
答案 3 :(得分:2)
如果您真的想在PHP中执行此操作,则可以将所有text / html输出连接到同一变量,然后最后echo
。在最后一个concat和echo
之间,您可以在每个.php页面中回显输出,以调用此函数。
<?php
//Code...
$string = ta_persian_num($string);
echo $string;
我个人比较喜欢JS这个问题。