Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move
今天文件上传出现Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move
<form action="" enctype="multipart/form-data" method="post">
<tr>
<td width="150" height="30" align="right" valign="middle">请选择上传文件</td>
<td width="250"><input type="file" name="fileup" /></td>
<td width="100"><input type="submit" name="submit" value="上传" /></td>
</tr>
</form>
<?php教程
if(!empty($_FILES[fileup][name])){
$fileinfo=$_FILES[fileup];
$type=strstr($fileinfo['name'],".");
if($type!=".jpg"){
echo "您上传的文件格式不正确!";
}else{
if($fileinfo['size']<209715 && $fileinfo['size']>0){
$path="10/".$_FILES["fileup"]["name"];
move_uploaded_file($fileinfo['tmp_name'],$path);
if(is_dir("10/")){
$dir=scandir("10/");
foreach($dir as $value){
echo $value."<br/>";
}
}else{
echo "目录路径出错!";
}
}else{
echo '文件大小不符合要求!';
}
}
}
?>
运行结果:
Warning: move_uploaded_file(10/02.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in E:apps教程erv-win32-2.5.10AppServwww10index_7.php on line 26
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:WINDOWStempphp1A.tmp' to '10/02.jpg' in E:appserv-win32-2.5.10AppServwww10index_7.php on line 26
目录路径出错!
解决办法,把相对路径改绝对
$_SERVER[DOCUMENT_ROOT] . '/10/' . $_FILES['fileup']['name'];
解决办法
将
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"])
改为
move_uploaded_file($_FILES["file"]["tmp_name"],"d:/" . $_FILES["file"]["name"])
方法二
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move
上传的时候出现类似这种报错,原因是目录权限是否为可写的问题。
一般设置777就可以解决。、
修改权限命令:
chmod 777 filename
chmod 777 dirname
sudo chmod 777 filename/dirname
chown wangr:admin dirname -R
注:-R 批量执行
cookie存在客户端,跟服务器没有关系的,注意你程序里大小写问题,linux是大小写敏感的,还有php教程的配置,比如是否 register_globals = Off 的配置在两边都一样等等。
PHP 的 @、# 符号的意思
function foo($n)
{
$result = 1/$n;
return $result;
}
echo @foo(0); // 函数中会产生除 0 错误,但加上 @ 后并不显示该错误。
echo "end"; // 输出 end
# 注释符号
同 // 一样,# 是单行注释符(多行注释符为 /* */)。
由于使用了@setcookie,即便在写入cookies是发生错误,也不会输出,造成了无法发现问题。最后把@setcookie改成 setcookie,程序输出如下错误信息:
Warning: Cannot modify header information - headers already sent by (output started at
经过上网一查,发现原来在进行setcookie设置前不能有任何输出内容,然后就去检查代码,也没有发现在setcookie之前输出了东西,在搜索了一下,发现了问题所在,具体内容如下:
今天在WordPress中文论坛逛了一圈。坛子里人气不高,不过还是有很多高手的。会编写插件和模版的高手和连编辑文件都不会的初学者混在一起,论坛就是这样,哈哈。
看到好几个帖子里提到同一个错误,比如这个帖子里提到的:"Warning: Cannot modify header information - headers already sent by (output started at c:program fileseasyphp1-8wwwwp-config.php:1) in c:program fileseasyphp1-8wwwwp-login.php on line 9"
这是一个很典型的问题。WordPress的程序执行时会首先调用wp-config.php一类的配置文件,也会调用wp-db.php建立数据库教程连接以备后用。这些文件只是做一些设置,并不输出html代码。设置完了后,程序本身开始执行了,有些程序会使用header命令设置一个HTTP头。由于HTTP头必须在html代码输出之前设置好,否则html代码已经开始往客户端发送了,HTTP也就已经发送过了,没法追回来重新设置了。WordPress CodeX里对这个问题作出了说明:《How do I solve the Headers already sent warning problem?》。文章指出:要确保各个文件——尤其是经常被编辑的wp-config.php文件——以<?php开头,以?>结尾,前后不能有其他字符。具体到上面的例子,很明显,提示信息说wp-config.php的第一行就开始了html输出,这有可能是第一行的<?php部分前面被加上的其他字符,比如空格一类的。再联想到以前提到的BOM的问题,那么非常有可能是因为这位朋友使用了Windows的记事本编辑了wp-config.php文件并保存成了UTF-8编码的文档,从而因为BOM的三个字符的输出造成了header命令执行出错。
解决方法
WordPress中文论坛没有提供全文搜索的功能,只能搜索标题,所以我用Google搜索了一下Cannot modify header information site:wordpress.org.cn,好像碰到这个问题的人还真不少。目前大家用的WordPress主要是WordPress英文原版和几个WordPress中文版。我的中文包又不包含wp-config-sample.php文件,自然不关我的事;WordPress原版用的ASCII码,自然不包含BOM,也不会出这样的错误;xigang制作的WordPress中文版在WordPress中文论坛有下,我去下载了WordPress 2.0.4和2.0.3这两个,检查了一下,没有问题;点点游的WordPress 2.0.4中文版里,wp-config-sample.php文件用的是GB2312编码和DOS行尾符,GOD!不过这样也好,如果有人用记事本修改了这个文件,DOS行尾符不会造成编辑问题,GB2312编码不会造成BOM的问题
cookie用法
关于删除cookie的说明开始-----
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )
要删除cookie需要确保它的失效期是在过去,才能触发浏览器的删除机制。
下面的例子说明了如何删除刚才设置的cookie:
<?php
//将过期时间设为一小时前
setcookie("TestCookie", "", time() - 3600);
setcookie("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
?>
-----关于删除cookie的说明结束-----
删除一个cookie的方法就是把这个cookie的有效期设置为当前时间以前,这也是几乎所有php程序员都会这么做。
后来一个初接触php的朋友告诉我,他在程序中本想把一个cookie的值设置为空,结果导致这个cookie直接被删除。我当时的第一反应是不相信,于是测试
了一下:
setcookie("testcookie", '');
print_r($_COOKIE);
结果果然是整个$_COOKIE数组都是空的,而非仅仅$_COOKIE['testcookie']为空。于是用winsock抓包,观察返回的http头,发现http头竟然是“Set-Cookie: testcookie=deleted; expires=Mon, 18-Jun-2007 02:42:33 GMT”,这说明“setcookie("testcookie", '');”的的确确是将testcookie这个cookie直接删除,而关于这种情况在php手册中完全没有说明。
fopen他以采集远程服务器的内容保存到本地同时也可以打开本地的文件,是一个非常不错的函数,下面我们来看看关于在使用fopen函数时出现failed to open stream: HTTP request failed问题解决方法。
<?php教程
$handle = fopen ("http://www.111cn.net/c5-03/", "rb");
$contents = "";
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
echo $contents; //输出获取到得内容。
?>
// 对 PHP 5 及更高版本可以使用下面的代码
<?php
$handle = fopen("http://mb.111cn.net", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
echo $contents;
?>
有人说在php.ini中,有这样两个选项:allow_url_fopen =on(表示可以通过url打开远程文件),user_agent="PHP"(表示通过哪种脚本访问网络,默认前面有个 " ; " 去掉即可。)重启服务器。
但是有些还是会有这个警告信息,想用完美的解决还差一步,还得设置php.ini里面的user_agent,php默认的user_agent是PHP,我们把它改成Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)来模拟浏览器就可以了
使用PHP的CURL模块取回PHP主页,并保存到文件中
<?php
$ch = curl_init("http://www.111cn.net/");
$fp = fopen("php_homepage.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
curl相关函数列表:
curl_init — 初始化一个CURL会话
curl_setopt — 为CURL调用设置一个选项
curl_exec — 执行一个CURL会话
curl_close — 关闭一个CURL会话
curl_version — 返回当前CURL版本
1>curl_init — 初始化一个CURL会话
描述
int curl_init ([string url])
curl_init()函数将初始化一个新的会话,返回一个CURL句柄供 curl_setopt(), curl_exec(),和 curl_close() 函数使用。如果可选参数被提供,那么CURLOPT_URL选项将被设置成这个参数的值。你可以使用curl_setopt()函数人工设置。
例 1. 初始化一个新的CURL会话,且取回一个网页
<?php
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, “http://www.111cn.net/”);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_exec ($ch);
curl_close ($ch);
?>
php教程中文乱码
中文名乱码是因为:
FCKeditor使用UTF-8编码,
自己机子比如是Windows系统
文件名使用的是GBK编码,
在上传中需要,改下编码,从UTF-8到GBK
==>第一个思路,转码思路,要修改两个文件,第一个文件:
.fckeditoreditorfilemanagerconnectorsphpcommands.php 文件
里面有一个 FileUpload 函数:
move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;
改为
move_uploaded_file( $oFile['tmp_name'], iconv("utf-8","gbk",$sFilePath) ) ;
----------
第二个文件:
.fckeditoreditorfilemanagerconnectorsphputil.php 文件
找到 ConvertToXmlAttribute 函数:
将:return ( utf8_encode( htmlspecialchars( $value ) ) ) ;
修改为:return iconv("GBK", "UTF-8", htmlspecialchars( $value ));
==>第二个思路,修改上传文件的名字:
需要修改如下:
在 .fckeditoreditorfilemanagerconnectorsphpcommands.php 文件中
找到 FileUpload 函数:将 $sFileName = $oFile['name'];
修改如下:
//--------------------------------------------------------------
//修正上传文件中文乱码方法之二:(修改上传文件的名字)
$sFileName = "sda.php";
$sOriginalFileName = $sFileName;
$sExtension = substr($sFileName, (strrpos($sFileName, '.') + 1));//找到扩展名
$sExtension = strtolower($sExtension);
$sFileName = date("YmdHis").rand(100, 200).".".$sExtension;
//--------------------------------------------------------------
个人认为第一种方法还是蛮好的!
java版
在使用FCKeditor2.4.3时若上传的图片或者flash的文件名为中文时,发现一下情况:
问题1:
当点击“插入/编辑图像”或者“插入/编辑Flash”按钮时,在弹出的对话框中选择上传按钮,如果上传的文件名为中文时会出现乱码。
解决办法:
把SimpleUploaderServlet.java做如下修改:
找到该程序中DiskFileUpload upload = new DiskFileUpload(),然后在该行下面添加
upload.setHeaderEncoding("UTF-8")
问题2:
当点击“插入/编辑图像”或者“插入/编辑Flash”按钮时,在弹出的对话框中使用浏览
服务器按钮上传中文文件时会出现乱码。
解决办法:
和问题1的解决办法基本一样,只不过需要在ConnectorServlet.java中添加
upload.setHeaderEncoding("UTF-8")便可。
问题3:
当点击“插入/编辑图像”或者“插入/编辑Flash”按钮时,在弹出的对话框中点击浏览
服务器按钮,会弹出“浏览服务器”页面,如果想在该页面中使用Create New Folder按钮
来创建一个中文目录时,会出现中文目录乱码。
解决办法:
web容器的编码要与FCKeditor默认的编码UTF-8一致,如果使用的是Tomcat,需修改
tomcat服务器中conf目录下的server.xml。如下:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups教程="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8" />
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="utf-8"/>
其实就是在原来的基础上添加URIEncoding的属性值为utf-8。
在使用FCKeditor2.4.3时若上传的图片或者flash的文件名为中文时,发现一下情况:
问题1:
当点击“插入/编辑图像”或者“插入/编辑Flash”按钮时,在弹出的对话框中选择上传按钮,如果上传的文件名为中文时会出现乱码。
解决办法:
找到FCKeditor.java解压包中的src目录下SimpleUploaderServlet.java做如下修改:
找到该程序中DiskFileUpload upload = new DiskFileUpload(),然后在该行下面添加
upload.setHeaderEncoding("UTF-8"),重新编译成class文件并利用WinRAR把该class文件
添加到FCKeditor-2.3.jar中相应的位置,然后覆盖你的web项目中原来的jar包便可。
问题2:
当点击“插入/编辑图像”或者“插入/编辑Flash”按钮时,在弹出的对话框中使用浏览
服务器按钮上传中文文件时会出现乱码。
解决办法:
和问题1的解决办法基本一样,只不过需要在ConnectorServlet.java中添加
upload.setHeaderEncoding("UTF-8")便可。
问题3:
当点击“插入/编辑图像”或者“插入/编辑Flash”按钮时,在弹出的对话框中点击浏览
服务器按钮,会弹出“浏览服务器”页面,如果想在该页面中使用Create New Folder按钮
来创建一个中文目录时,会出现中文目录乱码。
解决办法:
web容器的编码要与FCKeditor默认的编码UTF-8一致,如果使用的是Tomcat,需修改
tomcat服务器中conf目录下的server.xml。如下:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8" />
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="utf-8"/>
其实就是在原来的基础上添加URIEncoding的属性值为utf-8。
注:对于问题3,这种解决办法不可取,最好不要去修改服务器的编码,否则会影响到服务器上其它的工程。解决这个编码的问题可以修改源代码或者从新编写一个类来处理。通过观察打开的上传浏览对话框可以找对对应的htm页面和负责处理上传文件名称的com.fredck.FCKeditor.uploader. ConnectorServlet这个类,然后找到对应的参数,转换编码便可。如:String
newFolderStr=request.getParameter("NewFolderName");
newFolderStr=new String(newFolderStr.getBytes("iso8859-1"),"utf-8");
=================================================================================fckeditor如果大家搞定啦1!那一定想到他是没有提供删除功能的!!
以下是一段js,放在调用feckeditor的jsp教程页面
function FCKeditor_OnComplete( editorInstance )
{
editorInstance.Events.AttachEvent( 'OnBlur', onEditorBlur );
}function onEditorBlur(){
var imgs = FCKeditorAPI.GetInstance('EditorDefault').EditorDocument.body.all.tags("img");
for(var i=0; i < imgs.length; i++){
alert(imgs[i].src);
//这里你可以用一个隐匿域来接收这些路径信息
}
}
把这些路径信息放置于数据库教程是的一个字段,删除文档时一起删除,就可以解决图片存留问题
========================================================================================
避免上下滚动条的出现:
在fckconfig.js中加入下列2句:
FCKConfig.Plugins.Add( 'autogrow ' ) ;
FCKConfig.AutoGrowMax = 4000 ; //这是允许自动增长的最大高度限制
同时请确认fckeditoreditorpluginsautogrow有这个目录存在,没有的话到官网下载最新版FCK。
另外注意FCKConfig.PluginsPath的路径你设置对了没有。
===========================================================================
FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/ ' ;
这个是对的,系统默认的路径,FCK使用也没问题
就是不能自动调整高度
=============================================================================
FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/ ' ;
这是js里的语句。BasePath不是在这设的,是在php里调用FCK时设置的。
========================================================================
不行的话是不是你曾经改过FCK的源码。
你重新下载文件,只改动这2行测试一下就知道了。别的什么都不用改就可以实现你所说的要求。
FCKConfig.Plugins.Add( 'autogrow ' ) ;
FCKConfig.AutoGrowMax = 4000 ;
问题二
FCKeditor中文乱码问题
在FCKeditor的使用中,主要有在3个地方会出现中文乱码:
① 在“浏览服务器”页面中创建新目录时
问题:当点击“插入/编辑图象”或“插入/编辑Flash”时,会弹出“图象属性”或“Flash属性”对话框,然后单击其中的“浏览服务器”按钮时,会打开“浏览服务器”的页面,在这个页面中创建中文名目录时会出现乱码。
解决:修改Web容器的字符编码。因为FCKeditor的默认字符编码是UTF-8,所以将Web容器的字符编码也修改成UTF-8。如果Web容器用的是Tomcat,打开文件%CATALINA_HOME%/conf/server.xml,修改如下:
<Connector
port="8080"
redirectPort="8443"
minSpareThreads="25"
connectionTimeout="60000"
connectionLinger="-1"
serverSoTimeout="0"
maxSpareThreads="75"
maxThreads="150"
tcpNoDelay="true"
maxHttpHeaderSize="8192"
IEncoding="UTF-8">
</Connector>
<Connector
port="8009"
redirectPort="8443"
protocol="AJP/1.3"
IEncoding="UTF-8">
</Connector>
② 在“浏览服务器”页面中上传文件时
问题:在和①同样的方式打开的“浏览服务器”页面中上传中文名的文件时会出现乱码。
解决:打开项目WebRoot中的文件/editor/filemanager/browser/default/frmupload.html,在head中加一个meta:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
③ 在“图象属性”或“Flash属性”对话框中上传文件时
问题:当点击“插入/编辑图象”或“插入/编辑Flash”时,会弹出“图象属性”或“Flash属性”对话框,点击其中的“上传”选项卡,点击“浏览...”按钮,选择一个中文名的文件,再点击“发送到服务器上”按钮,上传后的文件名是乱码。
解决:修改FCKeditor.Java源代码。通过Eclipse修改源码然后重新打包成jar文件比较方便。在Eclipse里新建Web工程FCKeditor-java-2.3,这里要注意,因为FCKeditor.Java的WebRoot目录名是web,所以建议新建工程时,WebRoot目录名也命名为web。把FCKeditor.Java里的相应目录复制到工程下。在src里找到ConnectorServlet.java和SimpleUploaderServlet.java两个文件,分别在两个文件中找到DiskFileUpload upload = new DiskFileUpload();,在其后加入upload.setHeaderEncoding("utf-8");。然后把Tomcat安装目录下/server/lib里的catalina-ant.jar复制到项目的/WEB-INF/lib下。打开build.xml,修改property name="catalina.home"成Tomcat的安装目录。修改taskdef name="deploy"、taskdef name="list"、taskdef name="reload"、taskdef name="undeploy"如下:
<
taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask">
<classpath refid="compile.classpath"></classpath>
</taskdef>
<taskdef name="list" classname="org.apache.catalina.ant.ListTask">
<classpath refid="compile.classpath"></classpath>
</taskdef>
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">
<classpath refid="compile.classpath"></classpath>
</taskdef>
<taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask">
<classpath refid="compile.classpath"></classpath>
</taskdef>
然后在Eclipse的Outline窗口中运行Ant的dist,就会生成的新的FCKeditor-2.3.jar。将使用了FCKeditor的项目中的FCKeditor-2.3.jar替换成这个新的。
上传失败问题
这里不考虑服务器方的原因。首先检查web.xml中SimpleUploader这个Servlet的配置里,是否把参数enabled设为了false。
另外,FCKeditor会自动创建web.xml中SimpleUploader的参数baseDir指定的目录。当通过“浏览服务器”页面上传文件时,如果baseDir下没有相应的Image或Flash目录,FCKeditor会自动创建Image或Flash目录;但是当通过“上传”选项卡中的“发送到服务器上”按钮上传文件时,如果baseDir下没有相应的Image或Flash目录,FCKeditor就会报错,这时需要你手动在baseDir下新建Image或Flash目
总结,不管是jsp,php,asp教程.net出问题我们都需要分析如下
是的,是中文编码问题,有两个办法可以解决
都需要改fck的相应文件源代码
1 把中文名的字符串转换编码
2 重命名文件名为英文加数字
那个文件名我现在没有看代码忘了,而且版本不同好像略有差别,你研究一下应该可以找出来的
<?php教程
/*运算符号(PHP)操作符号
*
* 按运算符号功能分为:
* 一、算术运算符 + - * / % ++ --
* 二、字符串运算符 . 连接运算符
* 三、赋值运算符 = += -= *= /= %= .=
* 四、比较运算符 > < >= <= == === != <> !==
* 比较运算符---条件运算符---关系运算符
* 比较后的结果只有一种:boolean true false
* === 比较时不仅要求内容相同,也要求类型相同
* !== 比较时内容不相同,也要求类型不相同
* 五、逻辑运算符 &&或and ||或or !或not
* 逻辑运算符只能操作bool型的值,返回的也是bool型的值
* 六、位运算符 & | ^ ~ << >> >>>
* 七、其他运算符 ? : `` @ => -> :: & $
* `` 用来执行操作系统内核
* @ 用来屏蔽掉错误信息
* 建议使用“()”改变表达式的优先级别
*
* % 有两个目的:整除运算;控制范围,不要用小数,也不要用负数
* % 会吧运算符两边的数转为整数后再进行整除求余。
*/
//用 %符号判断闰年
$year=2011;
if(($year%4==0 && %year%100!=0) || $year%400=0)
{
echo "run nian";
}
else
{
echo " not run nian";
}
// ++ --符号的使用
$a=10;
$a++; //$a=$a+1; 先用变量,再自增1
++$a; //$a=$a+1; 先自增1,在用变量
$a--; //$a=$a-1; 先用变量,再自减1
--$a; //$a=$a-1; 先自减1,再用变量
echo $a; //结果为10
//++ -- 运算的区别
$a=10;
$b=$a++;//b=10,a=11
$c=--$b;//c=9,b=9
$d=$c++ + ++$c; //d=20,c=11
$e=$d-- - --$d; //d=18,e=2
echo $d;
//字符串运算符 . 的使用
$name="tom";
$age=27;
$height=1.75;
echo "我的名字是:{$name}我的年龄是:{$age}我的身高是:{$height}米<br>";
echo '我的名字是:'.$name.'我的年龄是:'.$age.'我的身高是:'.$height.'米'.'<br>';
echo "$age=".$age; //$age=27
echo "我的名字是:{$name}我的年龄是:{$age}我的身高是:{$height}米<br>";//赋值运算符的使用
$a=10;
$a+=10; //$a=$a+10;
$a-=10; //$a=$a-10;
$a*=10; //...
$a/=10; //...
$a%=10; //$a=$a%10;
$a.="abc";//$a=$a."abc";
echo $a;
$str='<table>';
$str.='<tr>';
$str.='<td>';
$str.='</td>';
$str.='</tr>';
$str.='</table>';
echo $str;//输出一个表格//比较运算符
var_dump(15>6);//返回 bool(true)
$a=15;
if(15==$a)
{
echo "a=15";
}
else
{
echo "a!=15";
}
//逻辑运算符的使用
var_dump(true && true);//true
var_dump(true && false);//false
var_dump(true || false);//true
var_dump(!true);//false
var_dump(!false);//true
//判断用户名密码
$username="admin";
$password="123456";
$email="290080604@qq.com";
if($username=="admin" && $password="123456")
{
echo "用户名密码正确";
}
if($username=="" || $password=="" || $email=="")
{
echo "一个都不能为空";
}
//位运算符
$a=20; //00010100
$b=30; // 00011110
/*
* 20 00010100
* 30 00011110 &
*-----------------------------------
* 00010100
*
*/
$c=$a & $b;
echo $c;
/*补充,& | 也可以用做逻辑运算
* &&和||的 短路问题:
* &&在作运算时,如果前面的数为false,则后面是否为true,整个表达式都为false,所以就不去执行后面的操作数;
* ||在作运算时,如果前面的数为true,则后面的数是否为false,整个表达式都为true,所以就不去执行后面的操作数;
* 然而,& 或者 | 在作运算时,两边都会被执行
*/
$a=10;
if($a>5 || $a++<100){}
echo $a;//输出10
$b=10;
if($b>5 | $b++<100){}
echo $b;//输出11
/*
位的概念:一个位是由8个二进制数组成的(例00000000),
一个字节由8个位组成,那么就有32个二进制数。
原码:最高位 用0表示正数,1表示负数
+7 00000111
-7 10000111
反码:一个数如果为正,则它的反码与原码相同;
一个数如果为负,则符号位为1,其余各位是对原码取反;
+7 00000111
-7 11111000
+0 00000000
-0 11111111
补码:一个数如果为正,则它的补码与反码与原码相同
一个数如果为负,则它的补码=反码+1,去掉最高位的溢出位
-7 原码 10000111 反码11111000
+1
补码11111001
已知一个负数的补码,把它转换为十进制数。
1.先对各位取反
2.将其转换为十进制数
3.加上负号,再减去1。
例:补码11111010
取反00000101
4+1=5
-5-1=-6
位运算符:
& 按位与 |按位或 ^按位异或 ~按位取反
例: 按位与 01101101
&00110111
00100101
结论:只有1 1为1。
按位或 01101101
|00110111
01111111
结论:只有0 0为0。
按位异或 01101101
^00110111
01011010
结论:只有1 0或0 1时为1。(也可以理解为处于不同状态为1(真))
按位取反 ~00110111
11001000
结论:将0变1,1变0
移位运算符:
左移:<< 带符号右移:>> 无符号右移:>>>
例:数 x x<<2 x>>2 x>>>2
17 00010001 01000100 00000100 00000100
-17 11101111 10111100 11111011 00111011
结论:正数左右移动都补0,负数左移补0,带符号右移补1,不带符号补0
*/
//其他运算符的运用
$a=10;
$b=$a>5 ? $a : 5;//三元运算符,如果成立$b=$a否则$b=5
echo $b;
//用``来执行操作系统shell命令
$str=`ipconfig /all`;
echo '<pre>';
echo $str;
echo '</pre>';
?>
本部分列出了在 PHP 中使用的各种运算符:
算数运算符
运算符 | 说明 | 例子 | 结果 |
---|---|---|---|
+ | Addition | x=2 x+2 |
4 |
- | Subtraction | x=2 5-x |
3 |
* | Multiplication | x=4 x*5 |
20 |
/ | Division | 15/5 5/2 |
3 2.5 |
% | Modulus (division remainder) | 5%2 10%8 10%2 |
1 2 0 |
++ | Increment | x=5 x++ |
x=6 |
-- | Decrement | x=5 x-- |
x=4 |
赋值运算符
运算符 | 说明 | 例子 |
---|---|---|
= | x=y | x=y |
+= | x+=y | x=x+y |
-= | x-=y | x=x-y |
*= | x*=y | x=x*y |
/= | x/=y | x=x/y |
.= | x.=y | x=x.y |
%= | x%=y | x=x%y |
比较运算符
运算符 | 说明 | 例子 |
---|---|---|
== | is equal to | 5==8 returns false |
!= | is not equal | 5!=8 returns true |
> | is greater than | 5>8 returns false |
< | is less than | 5<8 returns true |
>= | is greater than or equal to | 5>=8 returns false |
<= | is less than or equal to | 5<=8 returns true |
逻辑运算符
运算符 | 说明 | 例子 |
---|---|---|
&& | and | x=6 y=3 (x < 10 && y > 1) returns true |
|| | or | x=6 y=3 (x==5 || y==5) returns false |
! | not | x=6 y=3 !(x==y) returns true |
相关文章
ant design中upload组件上传大文件,显示进度条进度的实例
这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29- 这篇文章主要介绍了Element-ui upload上传文件限制的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-25
- 这篇文章主要介绍了smartupload实现文件上传时获取表单数据的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2017-01-09
Pytorch 的损失函数Loss function使用详解
今天小编就为大家分享一篇Pytorch 的损失函数Loss function使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-02解析element-ui中upload组件传递文件及其他参数的问题
这篇文章主要介绍了element-ui中upload组件如何传递文件及其他参数,分析一下我使用element-ui遇到的问题以及解决方法,需要的朋友可以参考下...2021-11-10- 这篇文章主要介绍了vue使用Element el-upload 组件的相关知识,在研究学习基本使用的过程中遇到很多问题,今天特此把问题记录分享到脚本之家平台,需要的朋友可以参考下...2021-09-30
使用jQuery ajaxupload插件实现无刷新上传文件
项目中会经常用到AJAX无刷新上传图片,但是iframe上传和flash插件都是比较复杂的,所以就找了一个jquery的插件。下面通过实例代码给大家介绍使用jQuery ajaxupload插件实现无刷新上传文件功能,需要的朋友参考下吧...2017-04-27php提示 Warning: touch() [function.touch]: Utime failed: Permission denied in错误
在使用php程序时提示Warning: touch() [function.touch]: Utime failed: Permission denied in错误,下面一起来看看此问题的解决办法。 使用timthumb.php出现Warni...2016-11-25- 这篇文章主要为大家分享了jQuery Ajax File Upload实例源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-09
Warning: mssql_connect() [function.mssql-connect]:
我是这样做的,确定mssql是正常的用户名密码也可以,但下面就是不行。 <?php教程 $con=mssql_connect( "localhost", "sa ", "123456 ") or die ('error'); ?>...2016-11-25Java8通过Function获取字段名的方法(获取实体类的字段名称)
Java8通过Function获取字段名。不用再硬编码,效果类似于mybatis-plus的LambdaQueryWrapper,对Java8通过Function获取字段名相关知识感兴趣的朋友一起看看吧...2021-09-29php CURLOPT错误Warning: curl_setopt() [function.curl-setopt]:...
在我们使用php curl函数时提示Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir...2016-11-25- 这篇文章主要介绍了精读《Vue3.0 Function API》,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-20
ajaxFileUpload插件,C#返回Json数据报错问题的解决方案
这篇文章主要介绍了ajaxFileUpload插件,C#返回Json数据报错的解决方案,需要的朋友可以参考下...2020-06-25- Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\myweb\lzlj\cn.php on line 23 问题是你的mysql_query()时的sql出现...2016-11-25
Warning: mssql_query() [function.mssql-query]:
Warning: mssql_query() [function.mssql-query]: message: 不能用 DB-Library(如 ISQL)或 ODBC 3.7 或更早版本将 ntext 数据或仅使用 Unicode 排序规则的 Unicode 数据...2016-11-25php文件上传$_FILES move_uploaded_file详细说明
第一种比较简单就是files利用index.php教程接入值就成了,没经过判断,都会用到move_uploaded_files与files[]全局变量如下 第一个参数是表单的 input name,第二个下标可以...2016-11-25asp.net fileupload控件上传文件与多文件上传
这篇文章主要介绍了asp.net fileupload控件上传文件的方法,fileupload控件多文件上传,以及fileupload上传时实现文件验证的方法,需要的朋友可以参考下...2021-09-22- 这篇文章主要介绍了Java8特性使用Function代替分支语句,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-09
ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法
这篇文章主要介绍了ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法,很实用的技巧,需要的朋友可以参考下...2021-09-22