做 session_unset()或者,您是否必须手动清除注册到$ _Session数组中的每个变量/a>? 我对此感到困惑,因为PHP文档说: 仅使用session_unset()作为不使用$ _Session的较旧的弃用代码. 如果使用$ _Session,请使用unset()取消登录会话变量 解决方案 是的,它删除了所有会话vars. session_unset-免费所有会话 变量 www.php.net 要删除所有会话var,您也可以使用: session_destroy(); 有时即使同时使用session_unset和session_destroy,您也可能会遇到问题.您必须清除$ _Session Array. session_unset(); session_destroy(); $_SESSION = array();
以下是关于 scripting 的编程技术问答
我需要编写一个基本的脚本/模板引擎,该引擎将在PHP下运行.理想情况下,我将能够将自己的标记语言与(x)HTML模板混合在一起,并通过服务器端解析器运行文档,以将自己的标记替换为(x)HTML数据库中的(x)HTML. . 不幸的是,由于我对PHP和脚本的了解,我不确定从哪里开始.我的第一个本能是通过某种正则表面解析器运行整个文档,并将我的自定义标记映射到特定的PHP功能...但对我来说似乎有点慢又沉重. 存在哪些资源/教程/示例可以将我指向正确的方向?为了进行比较,我真的很喜欢.NET MVC的新型剃须刀模板...我不想完全将其用于PHP项目,但是构建类似的东西会很棒. 更新 好吧,让我进一步完善我的解释...我为WordPress开发了网站.我的许多客户都想自定义他们的网站,但每当我开始谈论PHP时逃跑.这是一种脚本语言,看起来太复杂了,以至于外行用户甚至不想感兴趣. 我想做的是专门为WordPress创建自己的标记形式.因此,您没有在主题文件中使用php
我有一个简短的PHP实用脚本,我简单地从CLI运行它: php myscript.php 脚本总是在运行,定期执行某些任务(与问题无关).它不需要用户的任何输入. 运行后,我通常按 ctrl + z ,然后运行bg将过程放在后台,一切都很好. 如果我以: 运行它 php myscript.php & 该脚本在开始时处于背景下,但也将其处于停止状态.示例: [1] 11513 [1]+ Stopped php myscript.php 即使在这一点上运行bg也无济工作. 这是PHP脚本: 我的问题是我无法直接在后台运行它,因为系统会停止它,而我不明白为什么.我该如何解决? 更新: 我制作了同一脚本的Bash版本,它可以通过使用&the End启动(script.sh &
我进入了每个PHP项目(大约25!),一些SH脚本可以帮助我执行常规任务,例如部署,repo Syncronizing,数据库导出/导出等. 对于我管理的所有项目,SH脚本都是相同的,因此必须有一个配置文件来存储依赖项目的不同参数: # example conf, the sintaxys only needs to be able to have comments and be easy to edit. host=www.host.com administrator_email=guill@company.com password=xxx 我只需要找到一种可以从SH脚本读取(解析)此配置文件的干净方法,同时,可以从我的PHP脚本中读取相同的参数.不必使用XML. 您知道这是一个很好的解决方案吗? Guillermo 解决方案 如果您不想像Pavanlimo所显示的那样源源,另一个选择是使用循环拉动变量: while read propline
我有一个PHP脚本(News-Fenerator.php),当我包含它时,它会抓住大量新闻并打印它们.现在,我正在使用Python进行我的网站(CGI).当我使用PHP时,我在"新闻"页面上使用了类似的内容: (我缩短了示例以简单.) 有没有办法使Python执行脚本(News-generator.php)并返回输出可以跨平台工作的输出?这样,我可以做到这一点: page_html = "
News and Updates
" news_script_output = php("news-generator.php") //should return a string print page_html + news_script_output 解决方案 impor
我安装了Eclipse PDT-ALL-IN-WIN32-2.0.0GA和WAMPSERVER 2.0. 我尝试在Eclipse中以PHP脚本运行,但我有一个错误: "当前的调试器没有任何定义的PHP可执行文件." 如何创建此.EXE ?? 解决方案 好的,但我没有php.exe.我只在项目中创建test.php. 为了运行**.php*文件,您将需要安装PHP,并且由于您已经安装了WAMP,所以您应该可以. "当前的调试器没有任何定义的PHP可执行文件." 如您所说的那样,请尝试在本地硬盘驱动器上查找 php.exe ,然后在Eclipse中设置导致它的路径(例如,C:\ c:\ wamp \ bin \ php \ php5.2.9-2 \ php.exe ).转到 window \ periences \ php \ php operutables 并将此路径添加到列表中. 其他解决方案 您不需要创建此.EXE 在Ecl
我有此测试页面到目前为止我尝试过的内容,但这些图像彼此上面出现. Header ("Content-type: image/gif"); $image1Url = "../images/avatar.png"; $image2Url = "../images/key.png"; $image3Url = "../images/safari.png"; $image1 = imageCreateFromPNG($image1Url); $image2 = imageCreateFromPNG($image2Url); $image3 = imageCreateFromPNG($image3Url); $colorTransparent = imagecolorat($image1, 0, 0); imageColorTransparent ($image1, $colorTransparent); $colorTransparent = imagecolorat($image
python,perl和php,所有支持 当客户端连接到特定端口时,如何调用脚本文件? 脚本是否在连接期间保持"运行"? (可能是小时) 那么,脚本的多个"实例"会同时运行? 那么,如何从脚本的一个实例对另一个实例进行方法调用? 解决方案 脚本语言的使用方式与编译语言完全相同. 1)脚本通常打开并使用套接字.它不是由套接字"运行"或"调用",而是通过库直接控制它(通常在OS的本机C api中调用). 2)是. 3)不一定.大多数现代脚本Langauges都可以在一个"脚本"应用程序中处理多个插座. 4)n/a,请参见3) 编辑问题和评论的变化: 这现在很明显,您正在尝试在托管服务器的上下文中运行此操作.通常,如果您在Apache或类似服务器中使用脚本,则情况的工作方式有所不同. Apache打开并维护套接字,并执行您的脚本,将相关数据(帖子/获取结果等)传递给您的脚本处理.当您处理CGI等脚本时,插座通常不会发挥作用.
运行Fedora 9/10,Apache 2,PHP 5 ... 我可以使用exec()? 我只给apache root私密,然后在命令的前面添加" sudo"? 具体来说,我正在尝试启动和停止背景脚本. 目前,我有一个刚刚运行应用程序的shell脚本,start.sh: #!/bin/bash /path/to/my/app/appname 和一个杀死应用程序的脚本,stop.sh: #!/bin/bash killall appname 我会做: 预先感谢. 解决方案 您不能仅仅这样的sudo,您需要首先设置无密码的sudo in/etc/sudoers文件.例如,可以使用Visudo命令来完成.确保以这样的方式设置了Sudoers文件中的特权,以将Apache用户限制为您要运行的单个命令(即Shell脚本). 即使那样,它还是构成安全风险,因为任何人都
我已经搜索了高低,但是我发现的所有建议和技巧都不出于某种原因工作.我有一个被调用的批处理文件: cmd /C "automateMyProgram.bat >> automation.log 2>>&1" 效果很好:automation.log加载了该特定批处理文件的所有stdout和stderr.但是,在该批次脚本中,我有以下命令: start php updateDB.php param1 param2 ^> updateDB.log PHP脚本确实可以很好地执行,并且在参数中读取良好,但是UpdatedB.log从未创建.我确保将php.ini文件中的PHP错误报告设置为将错误输出到命令行接口. PHP脚本中有几个回声语句,我需要将其记录为日志,但由于某种原因,它们没有输出.我读到,如果您使用start命令调用程序,则必须使用CARET操作员重定向输出,因为该程序是在新过程中启动的.我也尝试了: start php updateDB.php param1
我是php newbie,并尝试使用以下方法为现有的PHP脚本添加进度栏: $ch=curl_init() or die("ERROR|Error: cURL Error"); curl_setopt($ch, CURLOPT_URL, $c); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_FILE, $fp); //####################################################// // This is required to curl give us some progress // if this is not set to false the progress function never // gets called curl_setopt($ch, CURLOPT_NOPROGRESS, false); //
即使刷出一些文本并结束了HTTP请求,我如何编写继续运行的PHP脚本?这可能吗? 解决方案 永远运行PHP应用程序或直到PHP终止 ignore_user_abort(true); set_time_limit(0); 其他解决方案 您可能对 功能: 设置客户端是否断开连接 应该导致脚本流产. 使用此功能,您可以: 生成必须发送到浏览器的页面的一部分 用呼叫ignore_user_abort (现在或之前) 做更多的工作 用户的浏览器可能仍会指示"等待"或"加载",但是页面的内容将加载和显示 - 即使用户按"停止",您的脚本也应继续执行. 有关更多信息,在该功能的手册页面上有一个示例 - 您可以查看本文:如何使用ignore_user_abort()在乐队中进行处理 当然,虽然可以将其用于某些光过程(例如页面末端的"清理"内容,同时向用户显示尽可能快),但您仍然会受max_execution_time等的限制. 因此,这不是
我知道有关使用Cron运行PHP文件的文章很多.但是,在共享托管的世界和用户易于设置的世界中,我不想弄乱. 我在网上找到了另一个与插座有关的解决方案.只是想让大家采取这一点,并告诉我这是一个好主意.听起来好像效果很好. 想法? //Open socket connection to cron.php $socketcon = fsockopen($_SERVER['HTTP_HOST'],80,$errorno,$errorstr,10); if($socketcon) { $socketdata = "GET /cron.php HTTP 1.1\r\nHost: ".$_SERVER['HTTP_HOST']."\r\nConnection: Close\r\n\r\n"; fwrite($socketcon,$socketdata); //Normally you would get all the data back with fgets and wait un
如何正确部署从开发到生产的应用程序以及如何处理多种站点配置. 我所有的开发都是通过SVN完成的,位于VAR/SVN/MYAPP/TRUNK和 实际生产代码在/var/www/myapp中. 我将本地计算机的最新代码查看为" myapp_latest_svn"的目录. 我的主角settings.php中有特定地点的代码,其中H_path = http://myapp.example &DB配置设置db_host,db_user_name和db_password,您所知道的 本地计算机设置(localhost/myapp.example只是一个Apache别名)和生产(实时网站在myapp.example上运行)服务器. .htaccess文件也与生产服务器上的文件不同.简而言之,开发和生产之间存在许多差异. 我将所有工作都保留在SVN中.每天早晨,我使用SVN更新,将最新代码更新为本地SVN存储库. 当我准备上线时,我会使用SVN COMMAT构建版本. 然后,在版
如何在没有循环的PHP中将字符串拆分为多维数组? 我的字符串是格式"A,5|B,3|C,8" 解决方案 没有您实际上在做循环部分,基于 array_map> + explode 应该做技巧;例如,考虑到您正在使用PHP 5.3: $str = "A,5|B,3|C,8"; $a = array_map( function ($substr) { return explode(',', $substr); }, explode('|', $str) ); var_dump($a); 会得到您: array 0 => array 0 => string 'A' (length=1) 1 => string '5' (length=1) 1 => array 0 => string 'B' (length=1) 1 => string '3' (
我有问题.我想做的是让我的PHP代码进行搜索,直到找到输入的内容为止.例如,如果我搜索了数字" 12".我希望它可以进入下面的文件中,并找到其中包含" 12"的行. Dark Green = 11 = No = 20, Light Blue = 12 = No = 20, Lime Green = 13 = No = 20, Sensei Gray = 14 = Yes = 0, 在那种情况下,此行中有12个: Light Blue = 12 = No = 20, 下一个我希望代码找到该行后要做的事情是为了读取其左侧的" ="符号之前的文本.在这种情况下,我希望我的代码阅读: Light Blue 我一直想这样做,任何帮助都将不胜感激! 解决方案 尝试下面的代码 $string = 'Dark Green = 11 = No = 20, Light Blue = 12 = No = 20, Lime Green = 13 = No = 20,