这是我第一次在PHP上使用MAC,早些时候我一直在使用ubuntu机器进行PHP。
我已经成功安装了MAMP。现在我在 htdocs中有一个文件( index.php )
<?php
echo “hello”;
及其在 safari 上的输出是:
“helloâ€
我尝试了几种不同的文本,它们都在浏览器上产生了荒谬的输出。
mac,safari或MAMP中的问题在哪里?
更新:
如果没有卷曲引号,则输出为‘hello’
答案 0 :(得分:1)
请勿使用“
和”
等特殊引号,而应使用"
或'
。一定要在编写代码时使用简单的文本编辑器,而不是像Word这样的东西,这会将简单的引号字符替换为更加花哨的字符。
PHP不理解花哨的引号,也不会用"
或'
替换它们,它们在语言中具有特殊含义。
那么,为什么它没有破解? PHP非常宽容,这有利有弊。请考虑以下代码,它使用常量:
define('HELLO', 'Hello world!');
echo HELLO;
这样可以输出“Hello world!”
现在,如果我们将看起来像常量的东西传递给PHP但是没有定义它,那么PHP将只输出(不存在的)常量的名称:
echo HELLOWORLD;
这将输出“HELLOWORLD”。
文本位“hello”
也是如此 - 它试图查找具有该名称的常量,找不到任何常量,因此只输出“hello”
。这仅输出E_NOTICE错误,默认情况下可能会禁用该错误。建议在开发期间输出所有错误,以避免出现以下错误:
error_reporting(E_ALL);
echo “hello”;
这将输出:
注意:使用未定义的常量“hello” - 假设为“hello”
事实上,如果我们试图在这些特殊引号之间添加一个空格,它就会失败,因为常量的名称中不能有空格,所以文本根本无法解释:
echo “hello world”;
解析错误:语法错误,意外“世界”(T_STRING),期待','或';'
至于为什么像“
这样的特殊引号没有正确显示,这是因为编码问题。 “
的ASCII值大于127,因此可以根据编码以不同方式进行解释。您的文件以特定编码保存,但您的服务器和浏览器可能认为它位于另一个编码中,从而产生错误字符。
答案 1 :(得分:1)
你必须将你的docmuent设置为utf-8编码。
方法-1:将以下html代码添加到您的页面
<meta charset="utf-8" />
方法-2:使用如下的PHP代码
<?
header("Content-Type: text/html;charset=utf-8");
echo “hello”;
?>
header
必须位于代码的第一行。
它将输出“hello”
;如果您想输出hello
,请将双引号更改为'hello'
或"hello"
。因为你目前的双引号不是英文。
答案 2 :(得分:0)
您可以引用引号&#39; ,双引号&#34; 。
您的双引号应该是&#34; 而不是“或”。
答案 3 :(得分:0)
您的问题已编码,您必须UTF-8
(utf8_encode
)
string utf8_encode ( string $data )
注意如果不起作用意味着你的PC或浏览器的问题然后去控制panal Langs .. 希望听到你的回答......