我怎样才能不用等待而asynchronous运行PHP代码? 我有一个长期运行(几乎是无限),应该在服务器启动时运行,并应该不等待而asynchronous处理。 我猜可能的select是: 在网页中运行代码并保持打开状态来完成这个任务 从一些命令行实用程序调用脚本(我不知道如何)将在后台处理。 我在我的本地服务器上运行PHP脚本,当发生某些事件时会发送电子邮件,例如生日提醒。 请build议如何在不打开浏览器页面的情况下实现这一点。
我一直做mysql_connect , mysql_pconnect的简单连接: $db = mysql_pconnect('*host*', '*user*', '*pass*'); if (!$db) { echo("<strong>Error:</strong> Could not connect to the database!"); exit; } mysql_select_db('*database*'); 在使用这个函数的时候,我总是使用简单的方法在查询之前转义任何数据,无论是INSERT , SELECT , UPDATE还是DELETE ,使用mysql_real_escape_string $name = $_POST['name']; $name = mysql_real_escape_string($name); $sql = mysql_query("SELECT * FROM `users` WHERE (`name` = '$name')") or die(mysql_error()); 现在我明白这在一定程度上是安全的! 它逃脱了危险的人物; 但是,它仍然容易受到其他可能包含安全字符的攻击,但可能会对显示数据或在某些情况下恶意修改或删除数据有害。 所以,我search了一下,发现了PDO,MySQLi和准备好的语句。 是的,我可能会迟到,但是我已经阅读了许多教程(tizag,W3C,博客,Googlesearch),没有一个提到过这些。 这似乎很奇怪,为什么只是逃避用户的input实际上是不安全的,不好的做法至less可以说。 是的,我知道你可以使用正则expression式来解决这个问题,但是我相信这还不够? 根据我的理解,当用户inputvariables时,使用PDO /准备语句是一种更安全的方式来存储和检索数据库中的数据。 唯一的问题是,切换(特别是在被困在我以前的编码习惯之后)有点困难。 […]
我试图find一个可靠的解决scheme,从string中提取一个url。 我有一个网站,用户回答问题,并在源框中input信息来源,我允许他们input一个url。 我想提取该url,并使其成为一个超链接。 类似于雅虎的答案。 有谁知道一个可靠的解决scheme,可以做到这一点? 我find的所有解决scheme都适用于某些url,但不适用于其他url。 谢谢
我创build了一个基于会话的简单login页面。 session_start(); 并添加了一个包含这个的注销页面 session_destroy(); 现在,当我closures浏览器/页面并重新打开它时,会话的值仍然存在。 我想知道如何彻底销毁页面/浏览器closures的会话。
例如, 如何获得对应于U + 010F的字符?
我写了一个简单的中继脚本,连接到一个networking摄像头,并从套接字读取,并使用打印function输出这些数据。 数据是MJPG数据,边界已经设置。 我只输出读取的数据。 问题是PHP似乎在缓冲这个数据。 当我将相机设置为1 FPS时,进纸将会冻结7-8秒,然后快速显示8帧。 如果我将分辨率设置为一个很大的尺寸,相机的移动速度大概是每秒1帧。 我假设一些缓冲正在发生(因为巨大的大小快速填充缓冲区,低大小不),我不知道如何禁用这种缓冲。 有谁知道如何? 码: ignore_user_abort(false); $boundary = "myboundary"; //Set this so PHP doesn't timeout during a long stream set_time_limit(0); $socketConn = @fsockopen ("192.168.1.6", 1989, $errno, $errstr, 2); if (!$socketConn) exit(); stream_set_timeout($socketConn, 10); fputs ($socketConn, "GET /mjpeg HTTP/1.0\r\n\r\n"); //Setup Header Information header("Cache-Control: no-cache"); header("Cache-Control: private"); header("Pragma: no-cache"); header("Content-type: multipart/x-mixed-replace; boundary=$boundary"); […]
我得到了一个表单,用户正在插入一些数据,并上传图像。 为了处理图像,我得到了以下代码: define ("MAX_SIZE","10000"); $errors=0; $image =$_FILES["fileField"]["name"]; $uploadedfile = $_FILES['fileField']['tmp_name']; if($image){ $filename = stripslashes($_FILES['fileField']['name']); $extension = strtolower(getExtension($filename)); if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")){ echo ' Unknown Image extension '; $errors=1; } else{ $newname = "$product_cn."."$extension"; $size=filesize($_FILES['fileField']['tmp_name']); if ($size > MAX_SIZE*1024){ echo "You have exceeded the […]
首先,我是PHP的初学者。 并且在这里发布了一个问题: 重构一个项目中的require_once文件 。 我尽可能多地阅读Front控制器,但无法得到它如何工作,甚至是什么。 有人可以简单地解释它是如何工作的? 谢谢。
我试图计算表中的行数,并认为这是做到这一点的正确方法: $result = $db->query("SELECT COUNT(*) FROM `table`;"); $count = $result->num_rows; 但计数总是返回(int)1 。 如果我在phpMyAdmin中使用相同的查询,我会得到正确的结果。 它坐在一个表中,所以我也试着testing$count[0] ,但是返回NULL 。 什么是正确的方法来做到这一点?
有人可以从PHP手册中了解这两个函数之间的区别 addslashes:在需要在数据库查询中引用的字符之前返回带有反斜杠的string。这些字符是单引号('),双引号(“),反斜杠()和NUL(NULL字节)。 mysql_real_escape_string:mysql_real_escape_string()调用MySQL的库函数mysql_real_escape_string,它将反斜杠预置为以下字符:\ x00,\ n,\ r,\,',“和\ x1a。 从我收集的主要区别是\ x00,\ n \ r \ x1a哪些addslashes不逃脱,你能告诉我什么意思是? 谢谢