Php 分析错误:语法错误,意外'–';(T_字符串) 这个问题把我难住了。

Php 分析错误:语法错误,意外'–';(T_字符串) 这个问题把我难住了。,php,function,Php,Function,第187行穿过下面代码框中的第9行在$zjd=(int)((1461… 这是什么? 这是一个打印出Hijri日历的函数,它依赖于月亮,它不同于公历,它依赖于太阳。Date();函数打印出公历日期,没有任何关于Hijri日期的函数(也称为伊斯兰日历)这两者之间是有区别的。例如,公历中的年数是365.25,而回历中的年数是354.367,还有月份……等等 怎么搞的? 我做了一个函数,可以将格里高利转换成希吉里,但它并不准确,所以我在网上搜索了一个。 我发现了很多精确的,但都是用JavaScript编

第187行穿过下面代码框中的第9行
$zjd=(int)((1461…

这是什么? 这是一个打印出Hijri日历的函数,它依赖于月亮,它不同于公历,它依赖于太阳。
Date();
函数打印出公历日期,没有任何关于Hijri日期的函数(也称为伊斯兰日历)这两者之间是有区别的。例如,公历中的年数是365.25,而回历中的年数是354.367,还有月份……等等

怎么搞的? 我做了一个函数,可以将格里高利转换成希吉里,但它并不准确,所以我在网上搜索了一个。 我发现了很多精确的,但都是用JavaScript编写的,而且这是唯一一篇用PHP编写的好文章

我试图就这个问题与作者联系,但他没有回应。这篇文章发布在2011年

部分功能
提前感谢这似乎是
-
(ascii:161)上的错误字符,而不是
-
(ascii:45)

这是被替换的版本

function hijriCal(){
$theDate     = getdate();
$wday        = $theDate['wday'];
$hr          = $theDate['mday'];
$theMonth    = $theDate['mon'];
$theYear     = $theDate['year'];

if (($theYear > 1582) || (($theYear == 1582) && ($theMonth > 10)) || (($theYear == 1582) && ($theMonth == 10) && ($hr > 14))) {
$zjd = (int)((1461 * ($theYear + 4800 + (int)(($theMonth - 14) / 12))) / 4) + (int)((367 * ($theMonth - 2 - 12 * ((int)(($theMonth - 14) / 12)))) / 12) - (int)((3 * (int)((($theYear + 4900 + (int)(($theMonth - 14) / 12)) / 100))) / 4) + $hr - 32075;
} else {
$zjd = 367 * $theYear - (int)((7 * ($theYear + 5001 + (int)(($theMonth - 9) / 7))) / 4) + (int)((275 * $theMonth) / 9) + $hr + 1729777;
}

-
(ascii:161)而不是
-
(ascii:45)上,它似乎是一个错误的字符

这是被替换的版本

function hijriCal(){
$theDate     = getdate();
$wday        = $theDate['wday'];
$hr          = $theDate['mday'];
$theMonth    = $theDate['mon'];
$theYear     = $theDate['year'];

if (($theYear > 1582) || (($theYear == 1582) && ($theMonth > 10)) || (($theYear == 1582) && ($theMonth == 10) && ($hr > 14))) {
$zjd = (int)((1461 * ($theYear + 4800 + (int)(($theMonth - 14) / 12))) / 4) + (int)((367 * ($theMonth - 2 - 12 * ((int)(($theMonth - 14) / 12)))) / 12) - (int)((3 * (int)((($theYear + 4900 + (int)(($theMonth - 14) / 12)) / 100))) / 4) + $hr - 32075;
} else {
$zjd = 367 * $theYear - (int)((7 * ($theYear + 5001 + (int)(($theMonth - 9) / 7))) / 4) + (int)((275 * $theMonth) / 9) + $hr + 1729777;
}

是长连字符。不要从美化它的网站复制并粘贴代码。啊,就是这样,我想说的是,复制并粘贴到记事本或其他东西中,以删除任何特殊字符。@shapeshifter将其复制到记事本并粘贴,但没有出现同样的问题。是的,这是一个有效字符,您需要替换长连字符使用“普通”连字符。进行搜索并替换。
是长连字符。不要从美化它的网站复制并粘贴代码。啊,就是这样,我想说的是,复制并粘贴到记事本或其他东西中,以删除任何特殊字符。@shapeshifter将其复制到记事本并粘贴,但没有出现同样的问题。是的,这是一个有效字符,您需要替换长连字符使用“普通”连字符。进行搜索并替换。成功了。非常感谢。成功了。非常感谢。
function hijriCal(){
$theDate     = getdate();
$wday        = $theDate['wday'];
$hr          = $theDate['mday'];
$theMonth    = $theDate['mon'];
$theYear     = $theDate['year'];

if (($theYear > 1582) || (($theYear == 1582) && ($theMonth > 10)) || (($theYear == 1582) && ($theMonth == 10) && ($hr > 14))) {
$zjd = (int)((1461 * ($theYear + 4800 + (int)(($theMonth - 14) / 12))) / 4) + (int)((367 * ($theMonth - 2 - 12 * ((int)(($theMonth - 14) / 12)))) / 12) - (int)((3 * (int)((($theYear + 4900 + (int)(($theMonth - 14) / 12)) / 100))) / 4) + $hr - 32075;
} else {
$zjd = 367 * $theYear - (int)((7 * ($theYear + 5001 + (int)(($theMonth - 9) / 7))) / 4) + (int)((275 * $theMonth) / 9) + $hr + 1729777;
}