首页 > 编程技术 > php

php中单引号与双引号的区别

发布时间:2016-11-25 17:40

php教程中单引号与双引号的区别

引号中,任何变量($var)、特殊转义字符(如“t r n”等)不会被解析,因此php的解析速度更快,转义字符仅仅支持“’”和“”这样对单引号和反斜杠本身的转义;

在字串中使用变量

  这个功能让你无须使用连接符号来粘和大量的简单字符串。php允许我们在双引号串中直接包含字
串变量,我们可以发现下面的两个字串的处理结果是相同的。

$full_name = $first_name . ' ' . $last_name;
$full_name = "$first_name $last_name";

  单引号串和双引号串在php中的处理是不相同的。双引号串中的内容可以被解释而且替换,而单引
号串中的内容总被认为是普通字符。例如:

 在字符串中引用复杂的变量组合时,可能会产生一些问题,下面的代码会正常工作:

echo "value = $foo";
echo "value = $a[$i]";

  而下面的代码却不能得到我们希望的结果:

echo "value = $a[$i][$j]"; //我们希望打印二维数组$a的某个元素。

  为避免这些字串使用中的潜在问题,我们通常把复杂的变量从字串中分离开来,就像这样:

echo 'value = ' . $a[$i][$j];

  还有一种办法是将复杂变量用花括号括起来,语法分析器就能正确辨认了:

echo "value = {$a[$i][$j]}" //打印二维数组$a的某个元素

  这样,又出现新问题了。当我们想在字串中引用花括号字符本身时,就要记得使用转义符了:

$var = 3;
echo "value = {$var}"; // 打印结果 "value = 3"
echo "value = {$var}"; // 打印结果 "value = {3}"


$foo = 2;
echo "foo is $foo"; // 打印结果: foo is 2
echo 'foo is $foo'; // 打印结果: foo is $foo
echo "foo is $foon"; // 打印结果: foo is 2 (同时换行)
echo 'foo is $foon'; // 打印结果: foo is $foon

 

双引号中,变量($var)值会代入字符串中,特殊转义字符也会被解析成特定的单个字符,还有一些专门针对上述两项特性的特殊功能性转义,例如“$”和“{$array[‘key’]}。这样虽然程序编写更加方便,但同时php的解析也很慢;


引号内部的变量不会执行
双引号会执行


$name = 'hello';
echo "the $name";

会输出 the hello

而如果是单引号

$name = 'hello';
echo 'the $name';

会输出 the $name

主要区别就是这个,其他的无所谓,看你自己喜欢了
推荐是保持一致,如用单引号其他地方保持一致就可以了,双亦然

 

下面中要在html 中调用就行了

<script" width=100% src=”fckeditor/fckeditor.js”></script>
<script type=”text/网页特效”>
function showfck(){
var ofckeditor = new fckeditor('content') ;
ofckeditor.basepath = ‘fckeditor/' ;
ofckeditor.toolbarset = ‘basic' ;
ofckeditor.width = ‘100%' ;
ofckeditor.height = ‘200′ ;
ofckeditor.value = ” ;
ofckeditor.replacetextarea() ;
document.getelementbyidx(”btnshow”).disabled = ‘true';
document.getelementbyidx(”btnshow”).style.display = ‘none';
}
</script>
<textarea name=”content”></textarea>
<input id=btnshow style=”display:inline” type=button onclick=”showfck()”>

今天我们要讲了是关于 php教程 如何调用代码如

<?
include("../editor/fckeditor.php");

$ofckeditor = new fckeditor('fckeditor1') ;
$ofckeditor->basepath = '../editor/';
$ofckeditor->value = '';
$ofckeditor->width = '100%' ;
$ofckeditor->height = '360' ;
$ofckeditor->create() ;

?>

如果php要获取值就直接

$_post'fckeditor1'];


就可以了。

更多详细内容请查看:http://www.111cn.net/wy/dreamweaver/34997.htm

方法1 : 据官方手册上描述若php教程的safe mode相关的设置过于苛刻,就会出现这样的情形:尽管文件真实存在也被误报,认为文件不存在。
由于服务器端的php.ini我们无法操纵,当用ini_set()也关闭不了safe mode模式,我们只有退而求其次,找一个更可靠、安全的检测方法来检测文件是否存在。我们可以借助 $_server['document_root'] 来加以实现。$_server['document_root'] 返回的是网站的根目录,该目录的最后一个子目录不包含目录标志符号“/”,如:

d:/www/htdocs
有了根目录,再加上需要检测的文件的路径,我们将得到一个绝对的路径,php就可以顺利使用file_exists()函数对之进行检测。上述代码我们只需要更改第一行为(注意,我们在config.php之前加上了符号“/”):

$file=$_server['document_root']."/config.php";
如此,代码的执行就很可信,不会出现预期以外的结果。

以上方法同样适用于目录(is_dir())或文件(is_file())的相关检测函数,能够检测出被安全保护的目录或文件是否存在。

最后顺便提一下:这类被php特殊设置所保护的文件在引用(include和require)时不必加上$_server['document_root']路径,因为,根据php说明文档,它们是允许引用的。

 

      方法2:本人的情况是因为文件在windows和linux之间来回的移动。造成linux下文件和目录的访问权限被改变,导致出文件除拥有者外其他均无访问权限。使用chmod -r 755 xxx/* 解决了问题。

 

ctrl+y查找:disable_functions

  找到后在=后面添加

  (这里都是禁止在php教程里面执行的函数)代码:

  复制内容到剪贴板

  exec,system,passthru,error_log,ini_alter,dl,openlog,syslog,readlink,

  symlink,link,leak,fsockopen,proc_open,popepassthru,chroot,scandir,

  chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,popen

  上面内容请放到一行。因为保持帖子的整体效果作了换行

  一般后台只用加:

  复制内容到剪贴板

  disable_functions = system,passthru,shell_exec,com,exec,shell

  查找:display_errors

  如果是on的话改成off

  查找:magic_quotes_gpc

  如果是off的话改成on

  查找:register_globals

  如果是on的话改成off

  查找:open_basedir

  后面增加

  /www/:/tmp/

  这里是限制php可以访问的目录,后面一定要加上/,否则如果有/wwwabcd这个目录也会被访问得到

  多个目录用英文:分隔。如果不添加/tmp/的话discuz!的上传功能就无法使用

  注意:以上内容在php.ini的开头会有相关设置的提示,请按ctrl+x查找下一个,不要直接在上面修改

  ------------------------------

  对php.ini优化

  gd库的支持

  ;extension=php_gd2.dll

  将前面的冒号去掉,

  output_buffering = off

  输出缓存允许你甚至在输出正文内容之后发送 header(标头,包括cookies)行 其代价是输出层减慢一点点速度。你可以使用输出缓存在运行时打开输出缓存, 或者在这里将指示设为 on 而使得所有文件的输出缓存打开。

  output_handler = ; 你可以重定向你的脚本的所有输出到一个函数,

  那样做可能对处理或以日志记录它有用。

  例如若你将这个output_handler 设为ob_gzhandler, 则输出会被透明地为支持gzip或deflate编码的浏览器压缩。

  设一个输出处理器自动地打开输出缓冲。

  找到这个

  output_buffering = off

  修改为

  on

  注意,不要设置数值,只需要设置为on即可。

  相应的,你还可以在你的discuz后台,打开gzip支持,也是优化的一项内容。

  有些朋友为了安全,还启用了php的安全模式,这个也是一办法

  另外有些朋友需要使用全局变量和magic,这是一些php程序的必备条件,discuz2.0也需要

  可以打开,不过安全性能将降低,方法很简单。

  register_globals = off ;

  将其修改为on即可.

  一些朋友经常反映无法上传较大的文件或者后台备份数据经常超时

  max_execution_time = 30 ; 这个是每个脚本运行的最长时间,可以自己修改加长,单位秒

  max_input_time = 60 ; 这是每个脚本可以消耗的时间,单位也是秒

  memory_limit = 8m ; 这个是脚本运行最大消耗的内存,也可以自己加大

  upload_max_filesize = 2m ; 上载文件的最大许可大小 ,自己改吧,一些图片论坛需要这个更大的值

  如果:

  php报错显示php has encountered an access violation at xxxxxx解决办法

  很多人说,是php版本的问题,其实不然,可以从四个地方来看这个问题

  1,是否zend所需的dll文件所在目录给的权限不够,必须有读取和运行的权限

  2,是否使用的2003,设置过应用池,比如池中限制了什么什么,调整一下再试试看,是否好了,呵呵

  3,php.ini有两个地方没有设置,而且一些程序必须用到的

  将;upload_tmp_dir该行的注释符,使该行在php.ini文档中起作用。

  upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以给其定义一个绝对路径,

  例如:upload_tmp_dir = d:upload  当然,此时你的d:upload目录必须有读写权限。

  这里我设置为

  upload_tmp_dir = c:temp

  出现这样的错误语句一般是因为你的php.ini中关于session.save_path一项没有设置好,

  解决的方法是将session.save_path和session.cookie_path 设置置为

  session.save_path = c:temp

  session.cookie_path = c:temp(我没有修改这项,我发现修改后的验证玛不能用)

  然后在c:目录下建立一个temp目录

 

常量在使用前必须要定义,否则程序执行会出错。在php教程中使用define()函数来定义常量。

1、语法格式:define("常量名称","常量的值");

例如:define("php360","完美的php");


下面还是来一个范例吧:
 

define() 函数定义一个常量。

常量类似变量,不同之处在于:

在设定以后,常量的值无法更改
常量名不需要开头的美元符号 ($)
作用域不影响对常量的访问
常量值只能是字符串或数字
语法
define(name,value,case_insensitive)参数 描述
name 必需。规定常量的名称。
value 必需。规定常量的值。
case_insensitive 必需。规定常量的名称是否对大小写敏感。

若设置为 true,则对大小写不敏感。默认是 false(大小写敏感)。
*/


define("greeting","hello world!");
echo constant("greeting");


/*
运行这段代码,就会在浏览器输出 hello world! 的结果。

2、常量命名的规则:以字母或下划线开始,后面可以跟任何字母、数字、下划线。

3、常量与变量的不同之处:

(1)常量前面没有$符号,而变量必须以$符号开头。

(2)常量只能用define()函数来定义,不能通过赋值语句定义。

(3)常量可以不用理会变量范围的规则,可以在任何地方定义和访问。

(4)常量一旦被定义就不能够重新定义或取消定义,并且值不能发生改变,而变量的值可以随时发生改变。

(5)常量的值只能是标量,即整型、浮点型、字符串3种类型*/

标签:[!--infotagslink--]

您可能感兴趣的文章: