- meira
-
一般不向数据库插入图片 而是插入图片的src 通过src找到图片然后显示。
<?php
session_start();
//array数组中放图片的格式
$uptypes = array("image/jpg","image/jpeg","image/png","image/pjpeg","image/gif","image/bmp","image/x-png");
$files =$_FILES["uppic"];
if($files["size"]>2097152){ //图片大小判断
echo "上传图片不能大于2M";
echo "<meta http-equiv="REFRESH" CONTENT="1;URL=pic.php">";
exit;
}
$ftype =$files["type"];
if(!in_array($ftype,$uptypes)){ //图片格式判断
echo "上传的图片文件格式不正确";
echo "<meta http-equiv="REFRESH" CONTENT="1;URL=pic.php">";
}
$fname = $files["tmp_name"]; //在服务器临时存储名称
$image_info = getimagesize($fname);
$name = $files["name"];
$str_name = pathinfo($name); //以数组的形式返回文件路劲的信息
$extname = strtolower($str_name["extension"]); //把字符串改为小写 extensiorn扩展名
$upload_dir = "upload/"; //upload文件夹
$file_name = date("YmdHis").rand(1000,9999).".".$extname;
$str_file = $upload_dir.$file_name; //文件目录
//存入数据库
$con=mysql_connect("localhost","root","");
if(!$con){
die(("数据库连接失败").mysql_error());
}
mysql_select_db("mywork",$con);
$sql="update user set picpath="$str_file" where user_name="$username""; //将图片地址插入数据库mywork
mysql_query($sql,$con);
mysql_close($con);
if(!file_exists($upload_dir)){
mkdir($upload_dir); //创建目录 成功则返回true 失败则返回flase
}
if(!move_uploaded_file($files["tmp_name"],$str_file)){ //将上传的文件移动到新的目录 要移动文件和文件新目录 成功则返回true
echo "图片上传失败";
echo "<meta http-equiv="REFRESH" CONTENT="1;URL=插入失败后希望跳转的页面>";
}
else{
//echo "<img src=".$str_file.">";
echo "图片上传成功";
echo "<meta http-equiv="REFRESH" CONTENT="1;URL=插入成功希望挑战的页面>";
}
- 可乐
-
文件上传筛选jpg图片,需要用image/pjpeg;
例如:
<input type="file" name="userfile" accept="image/png, image/pjpeg, image/gif, image/bmp" title="图片" />
打开的文件选择窗口可以筛选出 png, jpg, gif, bmp 四种格式的图片。
上传后thinkphp中为什么pathinfo设置不起作用
pathinfo是检查服务器环境的,不启作用的原因我认为有两种1、你的输出pathinfo文件,被.htaccess改写了2、服务环境没有搭建好2023-07-14 23:27:221
如何配置nginx伪静态以支持ThinkPHP的PATHINFO模式
开启nginx的pathinfo支持2023-07-14 23:27:301
Mac os 自带的 Apache 怎么开启 pathinfo
配置的 Apache 版本 : 2.2.13在配置文件中加入<Files *.php>AcceptPathInfo On</Files>这样 Apache 就可以支持针对 php 文件的 PathInfo 了.2.让 Nginx 支持 PathInfo在配置文件里添加location ~ .php{fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;set $path_info “”;set $real_script_name $fastcgi_script_name;if ($fastcgi_script_name ~ “^(.+?.php)(/.+)$”) {set $real_script_name $1;set $path_info $2;}fastcgi_param SCRIPT_FILENAME /var/html/$real_script_name;fastcgi_param SCRIPT_NAME $real_script_name;fastcgi_param PATH_INFO $path_info;include conf/fcgi.conf;}2023-07-14 23:27:361
thinkphp中,用pathinfo方式取不到GET参数。但是可以访问控制器
首先说明 ThinkPHP支持四种URL模式,可以通过设置URL_MODEL参数来定义,包括普通模式、PATHINFO、REWRITE和兼容模式。 PATHINFO模式也就是默认模式设置URL_MODEL 为1,所以楼主的第一个设置 "URL_MODEL"=>1, 有没有都是一样的 然后第二个设置 "URL_PATHINFO_MODEL"=>1 这个设置在3.0手册没有找到,感觉楼主应该看以前的视频?2.0的或者更旧的版本的吧? 最后 http://网址/TestWeb/index.php/m/User/a/add,这种形式,我不知道楼主什么意思?2023-07-14 23:27:441
phpstudy不支持pathinfo怎么解决?
在httpd.conf文件中添加如下配置<Files *.php>AcceptPathInfo On</Files>在php.ini文件中打开cfg.fix_pahtinfo=1;然后重启apache2023-07-14 23:27:531
php 有取得某一文件的路径的函数吗? 比如我有个文件test.txt,我想返回它所在的文件夹,怎么做到?
dirname(./xxx.test)2023-07-14 23:28:022
用thinkphp做的项目,本地测试没问题,放到服务器linux上后
确保伪静态正常比如apache的.htaccess2023-07-14 23:28:134
写一个php函数,尽可能高效的,从一个url中提取出文件的扩展名。
funciton get_extensionName($url){ return array_pop(explode(".", strtolower($url)));//返回小写的文件扩展名}2023-07-14 23:28:292
php怎么获取pathinfo类型url的参数
这个是自己分割的 不是直接获取的<?phpif(isset($_SERVER["PATH_INFO"])){$arr=expload("/",$_SERVER["PATH_INFO"]);var_dump($arr);//$arr里面就是所有PATH_INFO里面的东西}2023-07-14 23:28:371
如何配置nginx伪静态以支持ThinkPHP的PATHINFO模式
在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:location / { // …..省略部分代码if (!-e $request_filename) {rewrite ^(.*)$ /index.php?s=$1 last;break;}}注意if和括号之间的空格2023-07-14 23:28:451
PHP面试题之文件目录操作
这道题其实并不难,考点主要在函数substr()strrchr() array_pop() strrpos()strpos()strrev()explode() pathinfo()。废话不多说了,直接给大家贴代码了。获取文件后缀,遍历目录层次/***5种方式获取文件后缀名*这道题其实就是考函数substr()strrchr()array_pop()strrpos()strpos()strrev()explode()pathinfo()*@paramstring$filename要处理的文件名1.jpg/1.png/1.html/1.php*@returnstring.php/php*/functionget_ext1($filename){returnstrrchr($filename,".");}functionget_ext2($filename){returnsubstr($filename,strrpos($filename,"."));}functionget_ext3($filename){returnarray_pop(explode(".",$filename));}functionget_ext4($filename){returnpathinfo($filename,PATHINFO_EXTENSION);}functionget_ext5($filename){returnstrrev(substr(strrev($filename),0,strpos(strrev($filename),".")));}$filename="1.php";echoget_ext1($filename)." ";echoget_ext2($filename)." ";echoget_ext3($filename)." ";echoget_ext4($filename)." ";echoget_ext5($filename)." ";/***遍历目录(递归)*@paramstring$dir目录名且最后没有/*@returnarray$files整个目录结构*/functionmyScandir($dir){$files=array();if($handle=opendir($dir)){while(($file=readdir($handle))!=false){if($file!="."&&$file!=".."){$newDir=$dir."/".$file;if(is_dir($newDir)){$files[$file]=myScandir($newDir);}else{$files[]=$file;}}}closedir($handle);return$files;}}$dir="/dirname";print_r(myScandir($dir));以上代码是不是很简单啊,就这几个函数,函数掌握了,这道题就很容易的解决了,希望本文分享对大家有所帮助。2023-07-14 23:29:021
Request的getRequestURI()和getPathInfo()
在servlet处理请求的路径时request里有几个常用的函数: 这里的前三个函数的返回值基本是可以预期的,与servlet映射的URL基本没关系,而后两个返回的值就是与servlet映射的URL相关的了。(对于URL和URI的关系, 请看这里 ) 访问 : http://localhost:8080/myapp/test/first.html URL : http://localhost:8080/myapp/test/first.html URI : /myapp/test/first.html ContextPath : /myapp 情况1(path mapping): @WebServlet("/test1/*") Request : http://localhost:8080/myapp/test1/first.html ServletPath : /test1 PathInfo : /first.html 情况2(exact match): @WebServlet("/test2/t2") Request : http://localhost:8080/myapp/test2/t2 ServletPath : /test2/t2 PathInfo : null 情况3(extension mapping): @WebServlet("*.do") Request : http://localhost:8080/myapp/test3/t3.do ServletPath : /test3/t3.do PathInfo : null 情况4(default match): @WebServlet("/") Request : http://localhost:8080/myapp/ ServletPath : / PathInfo : null 扩展阅读: 关于servlet mapping2023-07-14 23:29:091
如何在lnmp上部署Thinkphp
ThinkPHP的四种URL模式:0(普通模式);1(PATHINFO模式);2(REWRITE模式);3(兼容模式)nginx需要PATHINFO模式,但需要更改nginx配置文件让其支持PATHINFO模式。系统环境:系统:CentOS-6.4-x86_64web服务器:nginx1.2.7PHP版本:PHP5.3.17数据库版本:MySQL5.5.28一、安装LNMP1.0一键安装包按照以上版本安装环境二、修改配置文件1.修改php配置文件php.ini,将其中cgi.fix_pathinfo=0,值改为1重启php-fpm2.ssh里执行:cat>/usr/local/nginx/conf/pathinfo.conf<<"EOF"set$real_script_name$fastcgi_script_name;if($fastcgi_script_name~"(.+?.php)(/.*)"){set$real_script_name$1;set$path_info$2;}fastcgi_paramSCRIPT_FILENAME$document_root$real_script_name;fastcgi_paramSCRIPT_NAME$real_script_name;fastcgi_paramPATH_INFO$path_info;EOF再将虚拟主机配置文件里的location~.*.(php|php5)?$替换为:location~.*.php再在includefcgi.conf;下面添加一行includepathinfo.conf;重启nginx完整的虚拟主机配置文件如下:server { listen 80; server_namewww.lnmp.org; indexindex.htmlindex.htmindex.php; root /home/wwwroot/lnmp; location~.*.php { try_files$uri=404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_indexindex.php; includefcgi.conf; includepathinfo.conf; } location/status{ stub_statuson; access_log off; } location~.*.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location~.*.(js|css)?$ { expires 12h; } access_log /home/wwwlogs/lnmp.log lnmp;}将ThinkPHP的URL模式设置成PATHINFO。ThinkPHP就可以在nginx中运行了。2023-07-14 23:29:171
在不支持pathinfo模式时怎么灵活切换URL
不是有好几种匹配模式的么,不支持pathinfo,就是用其他的三个试试,在config.php中,不过前提是你程序中涉及到链接的地方都是用site_url函数生成的,否则你只有手工修改程序,或者让服务器支持pathinfo2023-07-14 23:29:241
ThinkPHP 网址格式URL地址怎么设置~呢?
thinkPHP的URL在config中配置一、URL规则1、默认是区分大小写的2、如果我们不想区分大小写可以改配置文件"URL_CASE_INSENSITIVE"=>true,//url不区分大小写3、如果模块名为 UserGroupAction,那么url找模块就必要要写成http://localhost/thinkphp4/index.php/user_group/index4、如果"URL_CASE_INSENSITIVE"=>false,那么url也可以写为http://localhost/thinkphp4/index.php/UserGroup/index二、URL伪静态"URL_HTML_SUFFIX"=>"html|shtml|xml",//限制伪静态的后缀三、URL路由1、启动路由要在配置文件中开启路由支持"URL_ROUTER_ON"=>ture//开启路由2、使用路由1.规则表达式配置路由"URL_ROUTE_RULES"=>array()//路由规则"my"=>"Index/index",//静态地址路由"my"=>"/Index/index",//静态地址路由,加/直接跳到网站根目录下。":id/:num"=>"Index/index",//动态地址路由,可以$_GET接收地址栏参数"year/:year/:month/:date"=>"Index/index",//动态和静态混合地址路由"year/:yeard/:monthd/:dated"=>"Index/index",//动态和静态混合地址路由加上 d代表类型只能是数字"my/:id$"=>"Index/index",// 加上$说明地址中只能是 my/1000 后面不能有其他内容了2.正则表达式配置路由,必须以/开始 /结束"/^year/(d{4})/(d{2})/(d{2})/"=>"Index/index?year=:1&month=:2&date=:3"//这里d表示必须是数字2023-07-14 23:29:392
请教,使用lnmp如何手动安装配置php
写在前面的话: ThinkPHP的四种URL模式:0(普通模式);1(PATHINFO模式);2(REWRITE模式);3(兼容模式) nginx需要PATHINFO模式,但需要更改nginx配置文件让其支持PATHINFO模式。 系统环境: 系统:CentOS-6.4-x86_64 web服务器:nginx1.2.7 PHP版本:...2023-07-14 23:29:461
Request.PathInfo.Substring(1)是什么意思
Substring 是截取字符串.如:string str="abc";string s1=str.Substring(1);//从第1位开始截.此时s1的值为:"bc".string s2=str.Substring(1,1);//从第1位开始截1位.此时s1的值为:"b"2023-07-14 23:29:542
php中关于判断上传文件格式
$kuozhan=array("jpg","gif","doc");$flag = 1; // 判断上传文件是否格式正确,正确则为1 , 有一个格式错误则0// 循环,检测格式是否错误foreach($val["tmp_name"] as $key=>$us){ foreach($val["name"] as $key=>$ns){ $arr=pathinfo($val["name"][$key]); if(!in_array($arr["extension"],$kuozhan)){ echo " 上传失败,格式错误!"; $flag = 0; // 格式有错,flag为0 break; }}}// 上传文件if ($flag == 1) { 循环上传文件}2023-07-14 23:30:011
thinkphp开发网站 怎么在服务器上只能访问首页啊 是pathinfo的原因吗 怎么修改配置啊
可以在配置里修改 url模式, 还有建议使用U函数来写URL.2023-07-14 23:30:092
可以对http请求中的参数设置编码方式吗?如何设置
HTTP请求方式有两种,一种是GET方式,请求参数会用“?”作为分隔符跟在请求资源后面;另一种是POST方式,请求参数放在了最后面的位置。 服务器监听到浏览器的链接,首先将HTTP请求信息保存下来,再进行解析。// 请求信息的输入流private InputStream input;//获得HTTP请求信息,并解析出请求使用的是GET还是POST,然后调用相应的处理方法进行处理public void parseInput(){byte [] b = new byte[1024];try {input.read(b);} catch (IOException e) {LogInfo.error("读取请求信息出错"+e.getMessage());return;}String inputStr = new String(b);String type = inputStr.substring(0,inputStr.indexOf(" "));if("GET".equals(type)){parseGetString(inputStr);}else{parsePostString(inputStr);}}//路径信息,,其中/CCB表示pathInfoprivate String pathInfo;//请求资源路径,pathInfo中最后一个斜杆后米啊的字符串,如/bank/CCB,其中/CCB表示urlPatternprivate String urlPattern;//请求参数,在Get请求中第一个问号后面的字符串,如account=abc&pwd=123private String queryStr;//解析GET请求public void parseGetString(String getStr){String allStr = getStr;String info = allStr.substring(allStr.indexOf("/"),allStr.indexOf(" HTTP"));int end = info.indexOf("?");if(end == -1){pathInfo = info;}else{pathInfo = info.substring(0,end);queryStr = info.substring(end + 1);}urlPattern = pathInfo.substring(pathInfo.lastIndexOf("/"));parseQueryInfo(queryStr);}//解析POST请求public void parsePostString(String postStr){String qStr = postStr.trim();pathInfo = postStr.substring(postStr.indexOf("/"),postStr.indexOf(" HTTP"));urlPattern = pathInfo.substring(pathInfo.lastIndexOf("/"));queryStr = qStr.substring(qStr.lastIndexOf(System.getProperty("line.separator"))).trim();parseQueryInfo(queryStr);}解析出请求资源路径和请求参数就可以找到对应的资源发送给浏览器或根据请求参数做相应的处理,再将资源发送回去。2023-07-14 23:30:331
怎么让request.getrequestedsessionid 是空值
1. request请求象用:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html; charset = utf-8");this.response = response;out = this.response.getWriter();println("");//1. 获取请求式、处理乱码问题String method = request.getMethod();//servletRequestrequest.setCharacterEncoding("utf-8");//1. 获取请求体编码式String characterEncoding = request.getCharacterEncoding();println("getCharacterEncoding = " + characterEncoding);//2. get body lengthint contentLength = request.getContentLength();println("getContentLength = " + contentLength);//3. MIME typeString mimeType = request.getContentType();println("getContentType = " + mimeType);//4. 接收请求接口 Internet Protocol (IP) 址String ip = request.getLocalAddr();println("getLocalAddr = " + ip);//5. 基于 Accept-Language 返客户端用接受内容首选 Locale 客户端语言环境Locale locale = request.getLocale();println("getLocale = " + locale);//6. 所语言环境Enumeration locales = request.getLocales();while(locales.hasMoreElements()){Locale temp = locales.nextElement();println(" Locales = " + temp);}//7. 接收请求 Internet Protocol (IP) 接口主机名String localName = request.getLocalName();println("localName = " + localName);//8. 接收请求接口 Internet Protocol (IP) 端口号int localPort = request.getLocalPort();println("localPort = " + localPort);//9. 返请求使用协议名称版本String protocol = request.getProtocol();println("protocol = " + protocol);//10. 读取请求文信息BufferedReader reader = request.getReader();println("getReader = " + reader.toString());//11. 发送请求客户端String remoteAddr = request.getRemoteAddr();println("RemoteAddr = " + remoteAddr);//12. 发送请求客户主机String remoteHost = request.getRemoteHost();println("RemoteHost = " + remoteHost);//13. 发送请求客户主机端口int remotePort = request.getRemotePort();println("RemotePort = " + remotePort);//14. 返用于发请求案名称例:http 、 https 、 ftp String scheme = request.getScheme();println("Scheme = " + scheme);//15. 返请求发送服务器主机名Host值":"()前部值 或者解析服务器名称或服务器IP址String serverName = request.getServerName();println("ServerName = " + serverName);//16. 返请求发送端口"Host"值":" ()部值或者接受客户端连接服务器端口int serverPort = request.getServerPort();println("ServerPort = " + serverPort);//17. 返boolean值指示请求否使用安全通道(比HTTPS) 发boolean secure = request.isSecure();println("isSecure = " + secure);// ServletRequest 接口提供// HttpServletRequest 接口提供/** 18. 返用于保护servlet验证名称 所servlet容器都支持* basic、 formclient certificate验证, 并且能支持digest验证*/String authType = request.getAuthType();println("authType = " + authType);//19. getDateHeader ??request.getDateHeader("");//20. 返请求包含所名称枚举Enumeration headerNames = request.getHeaderNames();println("");while(headerNames.hasMoreElements()){String name = headerNames.nextElement();println(" headerNmea = " + name + "; getHeader = " + request.getHeader(name));}println("");//21. int形式返指定请求值 ???request.getIntHeader("123");//22. 返与客户端发请求发送URL相关联额外路径信息String pathInfo = request.getPathInfo();println("PathInfo = " + pathInfo);//23. 返包含请求RUL路径面查询字符串没查询字符串返nullString remoteUser = request.getRemoteUser();println("RemoteUser = " + remoteUser);//24. 返客户端制定IDString requestedSessionId = request.getRequestedSessionId();println("requestSessionId = " + requestedSessionId);//25. 返请求调用servletURL部String servletPath = request.getServletPath();println("servletPath = " + servletPath);//26. 返与请求关联前HttpSession没前并且参数true,则返新HttpSession session = request.getSession(true);println("getSession(true) = " + session);//27. 返包含前已经验证用户名称java.security.Principal象用户没经验证则该返nullPrincipal userPrincipal = request.getUserPrincipal();println("userPrincipal = " + userPrincipal);//28. 检查id否作Cook进入boolean sessionIdFromCookie = request.isRequestedSessionIdFromCookie();println("sessionIdFromCookie = " + sessionIdFromCookie);//29. 检查请求ID否作请求URL部进入boolean sessionIdFromURL = request.isRequestedSessionIdFromURL();println("sessionIdFormURL = " + sessionIdFromURL);//30. println("");out.flush();out.close();}public void println(Object obj){this.response.setContentType("text/html;charset=utf-8");try {out.println("");out.println(obj);out.println(" ");} catch (Exception e) {e.printStackTrace();}}2. 运行结getCharacterEncoding = utf-8getContentLength = -1getContentType = nullgetLocalAddr = 127.0.0.1getLocale = zh_CNLocales = zh_CNLocales = zhLocales = en_USLocales = enlocalName = lm.licenses.adobe.comlocalPort = 8080protocol = HTTP/1.1getReader = org.apache.catalina.connector.CoyoteReader@17b8d3dRemoteAddr = 127.0.0.1RemoteHost = 127.0.0.1RemotePort = 57814Scheme = httpServerName = localhostServerPort = 8080isSecure = falseauthType = nullheaderNmea = host; getHeader = localhost:8080headerNmea = user-agent; getHeader = Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20110101 Firefox/32.0headerNmea = accept; getHeader = text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8headerNmea = accept-language; getHeader = zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3headerNmea = accept-encoding; getHeader = gzip, deflateheaderNmea = cookie; getHeader = JSESSIONID=30256CEB48E2BF6050BF6E122635EAC4headerNmea = connection; getHeader = keep-alivePathInfo = nullRemoteUser = nullrequestSessionId = 30256CEB48E2BF6050BF6E122635EAC4servletPath = /reqgetSession(true) = org.apache.catalina.session.StandardSessionFacade@1fcf1bauserPrincipal = nullsessionIdFromCookie = truesessionIdFormURL = false2023-07-14 23:30:401
JAVA编程语言程序开发技术Dijkstra
Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法 用于计算一个节点到其他所有节点的最短路径 主要特点是以起始点为中心向外层层扩展 直到扩展到终点为止 Dijkstra一般的表述通常有两种方式 一种用永久和临时标号方式 一种是用OPEN CLOSE表方式 用OPEN CLOSE表的方式 其采用的是贪心法的算法策略 大概过程如下 声明两个集合 open和close open用于存储未遍历的节点 close用来存储已遍历的节点 初始阶段 将初始节点放入close 其他所有节点放入open 以初始节点为中心向外一层层遍历 获取离指定节点最近的子节点放入close并从新计算路径 直至close包含所有子节点 代码实例如下 Node对象用于封装节点信息 包括名字和子节点 [java] public class Node { private String name; private Map<Node Integer> child=new HashMap<Node Integer>() public Node(String name){ this name=name; } public String getName() { return name; } public void setName(String name) { this name = name; } public Map<Node Integer> getChild() { return child; } public void setChild(Map<Node Integer> child) { this child = child; } } MapBuilder用于初始化数据源 返回图的起始节点 [java] public class MapBuilder { public Node build(Set<Node> open Set<Node> close){ Node nodeA=new Node( A ) Node nodeB=new Node( B ) Node nodeC=new Node( C ) Node nodeD=new Node( D ) Node nodeE=new Node( E ) Node nodeF=new Node( F ) Node nodeG=new Node( G ) Node nodeH=new Node( H ) nodeA getChild() put(nodeB ) nodeA getChild() put(nodeC ) nodeA getChild() put(nodeD ) nodeA getChild() put(nodeG ) nodeA getChild() put(nodeF ) nodeB getChild() put(nodeA ) nodeB getChild() put(nodeF ) nodeB getChild() put(nodeH ) nodeC getChild() put(nodeA ) nodeC getChild() put(nodeG ) nodeD getChild() put(nodeA ) nodeD getChild() put(nodeE ) nodeE getChild() put(nodeD ) nodeE getChild() put(nodeF ) nodeF getChild() put(nodeE ) nodeF getChild() put(nodeB ) nodeF getChild() put(nodeA ) nodeG getChild() put(nodeC ) nodeG getChild() put(nodeA ) nodeG getChild() put(nodeH ) nodeH getChild() put(nodeB ) nodeH getChild() put(nodeG ) open add(nodeB) open add(nodeC) open add(nodeD) open add(nodeE) open add(nodeF) open add(nodeG) open add(nodeH) close add(nodeA) return nodeA; } } 图的结构如下图所示 Dijkstra对象用于计算起始节点到所有其他节点的最短路径 [java] public class Dijkstra { Set<Node> open=new HashSet<Node>() Set<Node> close=new HashSet<Node>() Map<String Integer> path=new HashMap<String Integer>() //封装路径距离 Map<String String> pathInfo=new HashMap<String String>() //封装路径信息 public Node init(){ //初始路径 因没有A >E这条路径 所以path(E)设置为Integer MAX_VALUE path put( B ) pathInfo put( B A >B ) path put( C ) pathInfo put( C A >C ) path put( D ) pathInfo put( D A >D ) path put( E Integer MAX_VALUE) pathInfo put( E A ) path put( F ) pathInfo put( F A >F ) path put( G ) pathInfo put( G A >G ) path put( H Integer MAX_VALUE) pathInfo put( H A ) //将初始节点放入close 其他节点放入open Node start=new MapBuilder() build(open close) return start; } public void putePath(Node start){ Node nearest=getShortestPath(start) //取距离start节点最近的子节点 放入close if(nearest==null){ return; } close add(nearest) open remove(nearest) Map<Node Integer> childs=nearest getChild() for(Node child:childs keySet()){ if(ntains(child)){//如果子节点在open中 Integer newCompute=path get(nearest getName())+childs get(child) if(path get(child getName())>newCompute){//之前设置的距离大于新计算出来的距离 path put(child getName() newCompute) pathInfo put(child getName() pathInfo get(nearest getName())+ > +child getName()) } } } putePath(start) //重复执行自己 确保所有子节点被遍历 putePath(nearest) //向外一层层递归 直至所有顶点被遍历 } public void printPathInfo(){ Set<Map Entry<String String》 pathInfos=pathInfo entrySet() for(Map Entry<String String> pathInfo:pathInfos){ System out println(pathInfo getKey()+ : +pathInfo getValue()) } } /** * 获取与node最近的子节点 */ private Node getShortestPath(Node node){ Node res=null; int minDis=Integer MAX_VALUE; Map<Node Integer> childs=node getChild() for(Node child:childs keySet()){ if(ntains(child)){ int distance=childs get(child) if(distance<minDis){ minDis=distance; res=child; } } } return res; } } Main用于测试Dijkstra对象 [java] public class Main { public static void main(String[] args) { Dijkstra test=new Dijkstra() Node start=test init() putePath(start) test printPathInfo() } } 打印输出如下 D:A >D E:A >F >E F:A >F G:A >C >G B:A >B C:A >C lishixinzhi/Article/program/Java/hx/201311/261702023-07-14 23:30:541
php获取上传文件扩展名$filename= md5(time().rand(0,9).$_FILES["filedata"]["name"]).".bmp";
$filetype=$_FILES["file1"]["type"];获取文件类型2023-07-14 23:31:091
谁能解释一下这个路径http://localhost/index.php/admin/home
什么意思```没明白````````2023-07-14 23:31:206
thinkphp3.2 怎么修改url的模式
在配置文件里修改啊 config.php 文件"URL_MODEL" => 1, // URL访问模式,可选参数0、1、2、3,代表以下四种模式:2023-07-14 23:31:502
新手求解:用thinkphp3.2.2怎样写上传mv视频类控制器?谢谢
public function video_process(){ //上传 视频 $folder=$_POST["folder"]; //echo $folder; $url=$_POST["url"]; //echo $url; $file_name=$_POST["file_name"]; $type=2; $pathinfo=pathinfo($_FILES["file"]["name"]); $_FILES["file"]["name"]=time().".".$pathinfo["extension"]; //echo $_FILES["file"]["name"]; $name = iconv("UTF-8", "gb2312", $_SERVER["DOCUMENT_ROOT"].$url.$_FILES["file"]["name"]); move_uploaded_file($_FILES["file"]["tmp_name"], $name); $m=M("Upload"); $m->type=$type; $m->file_name=$file_name.".".$pathinfo["extension"]; $m->folder=$folder; $m->file_adress=$_FILES["file"]["name"]; $m->add(); if($folder==1){ $this->redirect("Index/education"); }elseif ($folder==2) { $this->redirect("Index/train"); }elseif ($folder==3) { $this->redirect("Index/system"); }elseif ($folder==4) { $this->redirect("Index/facility"); }elseif ($folder==5) { $this->redirect("Index/motto"); } }希望能够帮到你!2023-07-14 23:31:571
求解这个PHP上传文件的代码
代码的意思是:页面执行后,if判断如果提交的action url中 submit值为空则显示上传表单,否则处理提交上传的处理过程。其实if(empty($_GET[submit])) 这个写法是错误的,应该写成 if(empty($_GET["submit"]))第二行的这个empty($_GET[submit])这里的submit 仅指的是表单提交的action url中的参数。2023-07-14 23:32:181
php判断是否为js后缀
你先获取要判断的url地址,然后再用正则判断2023-07-14 23:32:251
php获取网页域名、路径和参数问题
$urlArr = parse_url($url);2023-07-14 23:32:333
如何用grep对PHP进行代码审计
解决楼主的问题的方法就是,分开写代码,即:$filearr = split(".",$filename);$filetype = end($filearr);split 函数用来分割字符串的时候,基本等同于函数 preg_grep,分割表达式可以是一个正则表达式,也可以是一个普通字符串,所以本身的执行效率很低,这一点你要记得……所以,实现你现在的这个需求的话,最好用explode函数,使用普通字符作为分割表达式……但是也的确如楼上所说,split 函数(PHP里)已经弃用,你可以使用 preg_match、preg_match_all 、preg_grep 等使用正则表达式作为分割的函数来替代。就整个你的需求而言,你的思路还不很好,当一个文件名是【a.b.c.d.e.f.g.php】的时候,程序要浪费多余的资源来分割其实你不用的a、b、c……,所以要简单满足你取后缀名的需求的代码应该是:$filetype=substr(strrchr($filename,"."),1); 此外还有:$path_info = pathinfo($filename); $filetype = $path_info["extension"]; 其实不是很推荐。下面比较一下它们各自的执行效率:设文件名是:aaa.bb.php、循环执行10000次;执行10次取平均值:split + end :0.067644sexplode + end :0.016251spathinfo + ["extension"] :0.018983sstrrchr + substr :0.008611s【以上文字现场版纯手敲,2012-2-25 10:41,谢谢】2023-07-14 23:32:391
电脑出现“No input file specified”是什么原因?
解决NGINX PHP "No input file specified"打开一个页面<?php phpinfo(); ?> 然后在游览器下运行 结No input file specified.以下内容为网络收集FastCGI模式下访问php文件时,出现No input file specified.错误查看access.log 发现是 404原因分析:任何对.php文件的请求,都简单地交给php-cgi去处理,但没有验证该php文件是否存在。PHP文件不存在,没办法返回普通的404错误,它返回 一个404,并带上一句”No input file specified”另外,还可能跟 路径或者 权限有关系,或者SCRIPT_FILENAME 变量没有被正确的设置(这在nginx是最常见的原因)1)如果html也出现404错误,那么就是document root 设置的有问题2)检查脚本文件的权限, 可能PHP或者web server不能读取它3)SCRIPT_FILENAME设置错误可以使用fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;必须保证 $document_root 在配置文件中,在astcgi_param SCRIPT_FILENAME前面被用到过一次, 后面有解释为什么。或者修改/etc/php5/cgi/php.ini中cgi.fix_pathinfo=1这样也可让php-cgi正常使用SCRIPT_FILENAME这个变量有人说,这样改也行fastcgi_param SCRIPT_NAME /home/gavin/nginx/$fastcgi_script_name;让我们看看PHP对这两个变量是怎么解释的吧SCRIPT_NAMESCRIPT_FILENAME据说,必须指定正确的SCRIPT_FILENAME, PHP-CGI会忽略SCRIPT_NAME(即使它的值设置的是正确的)或者指定特殊的php.ini, 设置doc_root, discard path, fix pathinfo等等script_filename 只是被用做一种快捷方式。 如果fix_pathinfo设置打开,init函数将它用来决定真实的路径因为配置文件会改变 nginx的变量$fastcgi_script_namefastcgi_param SCRIPT_NAME /home/gavin/nginx/$fastcgi_script_name;fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;和fastcgi_param SCRIPT_FILENAME /home/gavin/nginx/$fastcgi_script_name;fastcgi_param SCRIPT_NAME $fastcgi_script_name;这两种配置都是可以的用fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;也是可以的,但必须保证 $document_root 被正确设置过‘SCRIPT_FILENAME"当前执行脚本的绝对路径名(pathname)‘SCRIPT_NAME"含有当前脚本的路径。当页面需要指向他们自己时,有用. __FILE__ 常量包含路径和文件名; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP"s; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting; this to 1 will cause PHP CGI to fix it"s paths to conform to the spec. A setting; of zero causes PHP to behave as before. Default is 1. You should fix your scripts; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.; cgi.fix_pathinfo=0主要跟CGI标准的PATH_INFOPATH_TRANSLATEDSCRIPT_NAME有关系修修改了好多最终主要修改的把 NGINX DEFAULT 那个文件中的fastcgi_param SCRIPT_NAME $fastcgi_script_name;改成实际的路径今天我是这种情况我的是fastcgi_param SCRIPT_NAME /var/www/nginx-default/$fastcgi_script_name;然后就好了---------------------以上是转载,下面是个人的解决办法:1. 更改php.ini首先php.ini的配置中把;cgi.fix_pathinfo=0 改为cgi.fix_pathinfo=12. 在nginx/conf/nginx.conf 找到:fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 改为:fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;然后重启nginx【killall -9 nginx ,./sbin/nginx】结果搞定。:-)2023-07-14 23:32:461
hadoop怎么访问hdfs路径
此题不适合高质量作答2023-07-14 23:33:123
PHP上传pdf文件应该设置什么类型
有两种方法:1.上传PDF文档的时候不是有个$_FILES["userfile"]["type"]吗?输出他就知道他是什麼文档了。2.PHP有一个pathinfo函数,用法是这样的<?php$path_parts = pathinfo("/www/htdocs/index.html");echo $path_parts["dirname"] . " ";echo $path_parts["basename"] . " ";echo $path_parts["extension"] . " ";?> 上例将输出:/www/htdocsindex.htmlhtml其中我们要用到的就是他的extension。$path_parts = pathinfo($_FILES["userfile"]["name"])$filetype=$path_parts["extension"];$filetype将会是你的文件类型,也就是PDF了。好了就这麼多。2023-07-14 23:33:221
网页的后缀是这样的index.php/index.html,,这算什么网页吖 为什么会是这样呢
应该是框架自定义的 你可以查看一下框架html的命名规则2023-07-14 23:33:304
如何在PHP页面设置session的作用域名?
在guest里面<?phpsession_start();$pathinfo = pathinfo($_SERVER["PHP_SELF"]);$dir = str_replace("/","",$pathinfo["dirname"]);if( $dir != "guest" )exit();if($_SESSION["username"] != ""){}2023-07-14 23:33:382
Thinkphp5怎么实现用get方式来获取pathinfoURL的参数的值
问题不太明确,你是想问在servlet中怎么取title的值吗? 在servlet中用 String titlecode=request.getParameter("title");//取值 String title=URLDecoder.decode(titlecode); //转码2023-07-14 23:33:561
Thinkphp5怎么实现用get方式来获取pathinfoURL的参数的值
问题不太明确,你是想问在servlet中怎么取title的值吗? 在servlet中用 String titlecode=request.getParameter("title");//取值 String title=URLDecoder.decode(titlecode); //转码2023-07-14 23:34:031
http请求获取cookie有哪些方法
HTTP请求方式有两种,一种是GET方式,请求参数会用“?”作为分隔符跟在请求资源后面;另一种是POST方式,请求参数放在了最后面的位置。 服务器监听到浏览器的链接,首先将HTTP请求信息保存下来,再进行解析。// 请求信息的输入流 private InputStream input; //获得HTTP请求信息,并解析出请求使用的是GET还是POST,然后调用相应的处理方法进行处理 public void parseInput(){ byte [] b = new byte[1024]; try { input.read(b); } catch (IOException e) { LogInfo.error("读取请求信息出错"+e.getMessage()); return; } String inputStr = new String(b); String type = inputStr.substring(0,inputStr.indexOf(" ")); if("GET".equals(type)){ parseGetString(inputStr); } else{ parsePostString(inputStr); } }//路径信息,http://localhost:8088/CCB?account=abc&pwd=123,其中/CCB表示pathInfo private String pathInfo; //请求资源路径,pathInfo中最后一个斜杆后米啊的字符串,如/bank/CCB,其中/CCB表示urlPattern private String urlPattern; //请求参数,在Get请求中第一个问号后面的字符串,如account=abc&pwd=123 private String queryStr;//解析GET请求 public void parseGetString(String getStr){ String allStr = getStr; String info = allStr.substring(allStr.indexOf("/"),allStr.indexOf(" HTTP")); int end = info.indexOf("?"); if(end == -1){ pathInfo = info; }else{ pathInfo = info.substring(0,end); queryStr = info.substring(end + 1); } urlPattern = pathInfo.substring(pathInfo.lastIndexOf("/")); parseQueryInfo(queryStr); } //解析POST请求 public void parsePostString(String postStr){ String qStr = postStr.trim(); pathInfo = postStr.substring(postStr.indexOf("/"),postStr.indexOf(" HTTP")); urlPattern = pathInfo.substring(pathInfo.lastIndexOf("/")); queryStr = qStr.substring(qStr.lastIndexOf(System.getProperty("line.separator"))).trim(); parseQueryInfo(queryStr); }解析出请求资源路径和请求参数就可以找到对应的资源发送给浏览器或根据请求参数做相应的处理,再将资源发送回去。2023-07-14 23:34:101
从http请求中 获得请求参数 应该调用哪个方法
PHP的话可以通过$_GET,$_POST 和 $_COOKIE 获取。2023-07-14 23:34:182
thinkphp 怎么上传视频,求代码急
public function video_process(){ //上传 视频$folder=$_POST["folder"];//echo $folder;$url=$_POST["url"];//echo $url;$file_name=$_POST["file_name"];$type=2;$pathinfo=pathinfo($_FILES["file"]["name"]);$_FILES["file"]["name"]=time().".".$pathinfo["extension"];//echo $_FILES["file"]["name"];$name = iconv("UTF-8", "gb2312", $_SERVER["DOCUMENT_ROOT"].$url.$_FILES["file"]["name"]);move_uploaded_file($_FILES["file"]["tmp_name"], $name);$m=M("Upload");$m->type=$type;$m->file_name=$file_name.".".$pathinfo["extension"];$m->folder=$folder;$m->file_adress=$_FILES["file"]["name"];$m->add();if($folder==1){$this->redirect("Index/education");}elseif ($folder==2) {$this->redirect("Index/train");}elseif ($folder==3) {$this->redirect("Index/system");}elseif ($folder==4) {$this->redirect("Index/facility");}elseif ($folder==5) {$this->redirect("Index/motto");}}希望能够帮到你!2023-07-14 23:34:251
java 最短路径算法 如何实现有向 任意两点的最短路径
Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。 Dijkstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN, CLOSE表方式 用OPEN,CLOSE表的方式,其采用的是贪心法的算法策略,大概过程如下: 1.声明两个集合,open和close,open用于存储未遍历的节点,close用来存储已遍历的节点 2.初始阶段,将初始节点放入close,其他所有节点放入open 3.以初始节点为中心向外一层层遍历,获取离指定节点最近的子节点放入close并从新计算路径,直至close包含所有子节点 代码实例如下: Node对象用于封装节点信息,包括名字和子节点 [java] view plain copy public class Node { private String name; private Map<Node,Integer> child=new HashMap<Node,Integer>(); public Node(String name){ this.name=name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Map<Node, Integer> getChild() { return child; } public void setChild(Map<Node, Integer> child) { this.child = child; } } MapBuilder用于初始化数据源,返回图的起始节点 [java] view plain copy public class MapBuilder { public Node build(Set<Node> open, Set<Node> close){ Node nodeA=new Node("A"); Node nodeB=new Node("B"); Node nodeC=new Node("C"); Node nodeD=new Node("D"); Node nodeE=new Node("E"); Node nodeF=new Node("F"); Node nodeG=new Node("G"); Node nodeH=new Node("H"); nodeA.getChild().put(nodeB, 1); nodeA.getChild().put(nodeC, 1); nodeA.getChild().put(nodeD, 4); nodeA.getChild().put(nodeG, 5); nodeA.getChild().put(nodeF, 2); nodeB.getChild().put(nodeA, 1); nodeB.getChild().put(nodeF, 2); nodeB.getChild().put(nodeH, 4); nodeC.getChild().put(nodeA, 1); nodeC.getChild().put(nodeG, 3); nodeD.getChild().put(nodeA, 4); nodeD.getChild().put(nodeE, 1); nodeE.getChild().put(nodeD, 1); nodeE.getChild().put(nodeF, 1); nodeF.getChild().put(nodeE, 1); nodeF.getChild().put(nodeB, 2); nodeF.getChild().put(nodeA, 2); nodeG.getChild().put(nodeC, 3); nodeG.getChild().put(nodeA, 5); nodeG.getChild().put(nodeH, 1); nodeH.getChild().put(nodeB, 4); nodeH.getChild().put(nodeG, 1); open.add(nodeB); open.add(nodeC); open.add(nodeD); open.add(nodeE); open.add(nodeF); open.add(nodeG); open.add(nodeH); close.add(nodeA); return nodeA; } } 图的结构如下图所示: Dijkstra对象用于计算起始节点到所有其他节点的最短路径 [java] view plain copy public class Dijkstra { Set<Node> open=new HashSet<Node>(); Set<Node> close=new HashSet<Node>(); Map<String,Integer> path=new HashMap<String,Integer>();//封装路径距离 Map<String,String> pathInfo=new HashMap<String,String>();//封装路径信息 public Node init(){ //初始路径,因没有A->E这条路径,所以path(E)设置为Integer.MAX_VALUE path.put("B", 1); pathInfo.put("B", "A->B"); path.put("C", 1); pathInfo.put("C", "A->C"); path.put("D", 4); pathInfo.put("D", "A->D"); path.put("E", Integer.MAX_VALUE); pathInfo.put("E", "A"); path.put("F", 2); pathInfo.put("F", "A->F"); path.put("G", 5); pathInfo.put("G", "A->G"); path.put("H", Integer.MAX_VALUE); pathInfo.put("H", "A"); //将初始节点放入close,其他节点放入open Node start=new MapBuilder().build(open,close); return start; } public void computePath(Node start){ Node nearest=getShortestPath(start);//取距离start节点最近的子节点,放入close if(nearest==null){ return; } close.add(nearest); open.remove(nearest); Map<Node,Integer> childs=nearest.getChild(); for(Node child:childs.keySet()){ if(open.contains(child)){//如果子节点在open中 Integer newCompute=path.get(nearest.getName())+childs.get(child); if(path.get(child.getName())>newCompute){//之前设置的距离大于新计算出来的距离 path.put(child.getName(), newCompute); pathInfo.put(child.getName(), pathInfo.get(nearest.getName())+"->"+child.getName()); } } } computePath(start);//重复执行自己,确保所有子节点被遍历 computePath(nearest);//向外一层层递归,直至所有顶点被遍历 } public void printPathInfo(){ Set<Map.Entry<String, String>> pathInfos=pathInfo.entrySet(); for(Map.Entry<String, String> pathInfo:pathInfos){ System.out.println(pathInfo.getKey()+":"+pathInfo.getValue()); } } /** * 获取与node最近的子节点 */ private Node getShortestPath(Node node){ Node res=null; int minDis=Integer.MAX_VALUE; Map<Node,Integer> childs=node.getChild(); for(Node child:childs.keySet()){ if(open.contains(child)){ int distance=childs.get(child); if(distance<minDis){ minDis=distance; res=child; } } } return res; } } Main用于测试Dijkstra对象 [java] view plain copy public class Main { public static void main(String[] args) { Dijkstra test=new Dijkstra(); Node start=test.init(); test.computePath(start); test.printPathInfo(); } }2023-07-14 23:34:411
【php学习】PHP中判断目录是否为空的函数?
empty();isset();2023-07-14 23:34:495
nginx环境,二级目录下怎么去掉首页的forum.php
把index.php设为默认搜索页在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:location/{// …..省略部分代码 if(!-e$request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break;}}其实内部是转发到了ThinkPHP提供的兼容模式的URL,利用这种方式,可以解决其他不支持PATHINFO的WEB服务器环境。 如果你的ThinkPHP安装在二级目录,Nginx的伪静态方法设置如下,其中youdomain是所在的目录名称。location /youdomain/{ if(!-e$request_filename){ rewrite ^/youdomain/(.*)$ /youdomain/index.php?s=$1 last;}}2023-07-14 23:35:031
C#文件操作2个问题求解决
1、讲路径写入本地,下次启动从本地读取,或者记录到注册表。本地相对简单些:System.IO.File.ReadAllText(path); System.IO.File.WriteAllText(path);2、NextDirectory.FullName即绝对路径2023-07-14 23:35:251
如何设置application 变量
如何设置application 变量 application变量是对一个web application有效的全局变量,在保存一些全局有效的值时非常有用。与session变量不同,application变量可以用application.getAttribute()和application.setAttribute()来访问。在jsp中,可以自动引用application变量,指代当前的web 应用。(有关web 应用,我将在另外的地方讨论。)在引用application 变量时,必须使用同步。并且,需要测试一个application属性是否已经存在。请仔细研究下面的代码,在下面,设置了一个叫“change"的application 属性,保存一个整型值。关于在servlet中使用application变量,方法与下面的代码一致,不过,需要先说明一个application如下:servletContext application=getServletContext();后面的一段函数是env.Java的片断,可以看看在servlet中如何使用application变量的。Integer count = null;synchronized (application) {count = (Integer) application.getAttribute("change");if (count == null)count = new Integer(0);count = new Integer(count.intValue() + 1);application.setAttribute("change", count);}private void printApplication(PrintWriter pw, HttpServletRequest req)throws IOException{ServletContext application = getServletContext();pw.println("<h1>Application Information:</h1>");pw.println("<table>");pw.print("<tr><td>Major Version<td>");pw.println(application.getMajorVersion());pw.print("<tr><td>Minor Version<td>");pw.println(application.getMinorVersion());pw.print("<tr><td>Server Info<td>");pw.println(application.getServerInfo());pw.print("<tr><td>Real Path (of pathinfo)<td>");pw.println(application.getRealPath(req.getPathInfo()));pw.print("<tr><td>Mime-type (of pathinfo)<td>");pw.println(application.getMimeType(req.getPathInfo()));pw.println("</table>");pw.println("<h1>Application Variables:</h1>");pw.println("<table>");Enumeration e = application.getAttributeNames();while (e.hasMoreElements()) {String name = (String) e.nextElement();pw.print("<tr><td>");pw.print(name);pw.print("<td>");pw.println(application.getAttribute(name));}pw.println("</table>");}%><Html><head><title>Counter</title></head><body bgcolor=#ffffff><h1>Welcome, visitor: <%= count %></h1></body></html>2023-07-14 23:35:432
如何解决nginx日志中文编码问题
其实,要解决nginx不支持pathinfo的问题,有两个解决思路,一是不使用pathinfo模式,二是修改nginx的配置文件,使它支持pathinfo。为了使问题简单化,我选择了第一种方式,因为就第二种方式,我查了很多资料,发现大家的方法不尽相同2023-07-14 23:35:501
php没有 ?> 结尾也可以吗?
1. ?>可以没有。2. 代码说明如下:<?phpheader("Content-Type:text/html;charset=utf-8");//设置当前语言编码为utf-8error_reporting(E_ALL);//设置错误报告为 全部错误//以下代码定义了$system_folder和$application_folder两个代表网站路径的变量//并将$system_folder转换成网站的实际路径$system_folder = "core";$application_folder = "application";if (strpos($system_folder, "/") === false) { if (function_exists("realpath") and @realpath(dirname(__file__)) !== false) { $system_folder = realpath(dirname(__file__)) . "/" . $system_folder; }} else { $system_folder = str_replace("\", "/", $system_folder);}//以下定义了几个常量define("EXT", ".php");define("SELF", pathinfo(__file__, PATHINFO_BASENAME));define("FCPATH", str_replace(SELF, "", __file__));define("BASEPATH", $system_folder . "/");//以下检查$application_folder是不是文件夹,如果是定义一个常量//如果不是,将常量值定义为某个缺省的路径if (is_dir($application_folder)) { define("APPPATH", $application_folder . "/");} else { if ($application_folder == "") { $application_folder = "application"; } define("APPPATH", BASEPATH . $application_folder . "/");}//引入一个文件require_once BASEPATH . "codeigniter/CodeIgniter" . EXT;2023-07-14 23:35:571
如何判断hdfs(hadoop)上的路径是文件还是目录。
这个简单 创建一个FileStatus 对象 调用isDir()方法 返回一个布尔值 我想这个你该懂的吧。。这个你多看看api就知道。。不知道你能满意不2023-07-14 23:36:054
求助preg_split() expects parameter 2 to be string, array given in app/setup/check.php on line 116
array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )pattern用于搜索的模式,字符串形式。 subject输入字符串 你的$content 是数组,还是字符串,应该是字符串!你的可能是数组!打印一下看看2023-07-14 23:36:401
php 图片处理问题 总是说“图片格式错误” 求大神看看
首先从你的错误提示“图片格式错误”来看,证明代码进入了switch ($info[2]) { ......}的default分支,而且如果你没有报其他E_WARNING或者E_NOTICE的话,那么证明getimagesize函数有正确使用,那么就需要查看传入的参数了,也就是你传入imageCut函数的第一个参数,这里也就是$userPath.$filename,建议你打印一下$userPath.$filename,看一下是否符合自己的需求;2023-07-14 23:36:471