php获取文件名后
⑴ php怎么获取被包含文件名
看了你上面追问我知道你需要干啥了..
没必要这样,你可以用环境变量找出当前网站的URI
变量是这样的:$_SERVER['REQUEST_URI']
如果地址是 .com/asd.php
那么返回的值就是 /asd.php
也就是截取/后面的所有内容
如果是动态页面你可以用函数
ereg来抓取当前页面
也就是
if (ereg('index.php', $_SERVER['REQUEST_URI'])) {}
相类似..
上唤枣面的地址如果是 xxx/index.php?action=xxx
那么判断依腔链燃然伍虚成立..
⑵ php获取文件夹下所有文件名
function dir_file_handle($dir,$dir_handle,$file_handle,&$array=NULL) {
$array = array();
function circle($dir,$dir_handle,$file_handle,&$array){
$handle=opendir($dir);
while(($file=readdir($handle))!==false){
if($file!="." && $file!=".."){
if(is_dir("$dir/$file")){
//文件夹操作
eval($dir_handle);
circle("$dir/$file",$dir_handle,$file_handle,&$array);
}else{
//文件操作
eval($file_handle);
}
}
}
}
@circle($dir,$dir_handle,$file_handle,$array);
}
function list_dir_file($array) {
$indent = 0;
static $preindent = 0;
while (list($key,$value) = each($array)) {
$indent = count(explode('/', $key));
if ($indent == 1) {
$indent = $preindent;
}else {
$preindent = $indent;
}
$dirname = substr(strrchr($key, '/'), 1);
if (is_array($value)) {
echo str_repeat("", $indent)."|-$dirname<br>";
list_dir_file($value);
}else {
echo str_repeat("", $indent*2)."$value<br>";
}
}
}
dir_file_handle(
'./01',
'
if(is_null($array["$dir"])) {
$array["$dir"] = array();
}
if(is_null($array["$dir/$file"])) {
$array["$dir/$file"] = array();
}
',
'array_push($array["$dir"],$file);',
$array
);
list_dir_file($array);
⑶ php 获取指定文件夹内的文件名,不要扩展名
试试这个谨链
<?php
$path = array("./test");//文件夹名
foreach($path as $val){
$dir_handle = @opendir($val) or die("Unable to open $val");
echo "Directory Listing of $val<br/>";
while ($file = readdir($dir_handle))
{
echo "<option value='祥毁孙$file'>" . str_replace( '余敬.' . pathinfo($file,PATHINFO_EXTENSION), '',$file ) . "</option>";
}
closedir($dir_handle);
echo "<br>";
}
?>
⑷ php中怎么从路径中取出文件名
1.basename($path) — 返回路径中的文件名部分
2.scandir(/dir) 列出指定路径中的文件和目录
你应该试下 第一个
⑸ PHP 如何 得到文件名(不要后缀名)
方法如下:
$dh = opendir($dirname);
$n = 0;
while ($file=readdir($dh)){
// $file为目录下所有文件和文件夹,
// 需要注意默认有 .(本目录)和..(上级目录)这两个特殊文件夹
if (is_file($file)){
//只处理文件
if (!strpos($file,'.')){
// 无后缀名的文件
}
$n++; // 计数
}
}
⑹ PHP如何得到文件名(不要后缀名)
方法如下:
$dh = opendir($dirname);
$n = 0;
while ($file=readdir($dh)){
// $file为目录下所有文件和文件夹,
// 需要注意默认有 .(本目录)和..(上级目桐歼录)这两个特殊文件夹
if (is_file($file)){
//只处理文件
if (!strpos($file,'.')){
// 无后缀局芦冲名的文件
}
$n++; // 计哗哪数
}
}
⑺ php怎样找文件名的后几个字母
目前防采集的方法有很多种,先介绍一下常见防采集策略方法和它的弊端及采集对策:
一、判断一个IP在一定时间内对本站页面的访问次数,如果明显超过了正常人浏览速度,就拒绝此IP访问
弊端:
1、此方法只适用于动态页面,如:asp\jsp\php等…静态页面无法判断某个IP一定时间访问本站页面的次数
2、此方法会严重影响搜索引擎蜘蛛对其收录,因为搜索引擎蜘蛛收录时,浏览速度都会比较快而且是多线程。此方法也会拒绝搜索引擎蜘蛛收录站内文件
采集对策:只能放慢采集速度,或者不采
建议:做个搜索引擎蜘蛛的IP库,只允许搜索引擎蜘蛛快速浏览站内内容。搜索引擎蜘蛛的IP库的收集,也不太容易,一个搜索引擎蜘蛛,也不一定只有一个固定的IP地址。
评论:此方法对防采集比较有效,但却会影响搜索引擎对其收录。
二、用javascript加密内容页面
弊端:此方法适用于静态页面,但会严重影响搜索引擎对其收录情况,搜索引擎收到到的内容,也都是加密后的内容
采集对策:建议不采,如非要采,就把解密码的JS脚本也采下来。
建议:目前没有好的改良建议
评论:建议指望搜索引擎带流量的站长不要使用此方法。
三、把内容页面里的特定标记替换为”特定标记+隐藏版权文字“
弊端:此方法弊端不大,仅仅会增加一点点的页面文件大小,但容易反采集
采集对策:把采集来的含有隐藏版权文字内容的版权文字替掉,或替换成自己的版权。
建议:目前没有好的改良建议
评论:自己感觉实用价值不大,就算是加上随机的隐藏文字,也等于画蛇添足。
四、只允许用户登陆后才可以浏览
弊端:此方法会严重影响搜索引擎蜘蛛对其收录
采集对策:目前落伍已经有人发了对策文章 ,具体对策就看这个吧《ASP小偷程序如何利用XMLHTTP实现表单的提交以及cookies或session的发送》
建议:目前没有好的改良建议
评论:建议指望搜索引擎带流量的站长不要使用此方法。不过此方法防一般的采集程序,还是有点效果的。
五、用javascript、vbscript脚本做分页
弊端:影响搜索引擎对其收录
采集对策:分析javascript、vbscript脚本,找出其分页规则,自己做个对应此站的分页集合页即可。
建议:目前没有好的改良建议
评论:感觉懂点脚本语言的人都能找出其分页规则
六、只允许通过本站页面连接查看,如:Request.ServerVariables(”HTTP_REFERER”)
弊端野返:影响搜索引擎对其收录
采集对策:不知道能不能模拟网页来源。。。。目前我没有对应此方法的采集对策
建议:目前没有好的改良建议
评论:建议指望搜索引擎带流量的站长不要使用此方法。不过此方法防一般的采集程序,还是有点效果的。
从以上可以看出,目前常用的防采集方法,要么会对搜索引擎收录有较大影响,要么防采集效果不好,起不到防采集的效果。那么,还有没有一种有效防采集,而又不影响搜索引擎收录的方法呢?那就请继续往下看吧裤氏,精彩的地方马上呈献给大家。
下面就是我的防采集策略,防采集而又不防搜索引擎
从前面的我讲的采集原理大家可以看出,绝大多数采集程序都是靠分析规则来进行采集的,如分析分页文件名规则、分析页面代码规则。
一、分页文件名规则防采集对策
大部分采集器都是靠分析分页文件名规则,进行批量、多页采集的。如果别人找不出你的分页文件的文件名规则,那么别人就无法对你的网站进行批量多页采集。
实现方法:
我认为用MD5加密分页文件名是一个比较好的方法,说到这里,有人会说,你用MD5加密分页文件名,颂纯饥别人根据此规则也可以模拟你的加密规则得到你的分页文件名。
我要指出的是我们加密分页文件名时,不要只加密文件名变化的部分
如果I代表分页的页码,那么我们不要这样加密
page_name=Md5(I,16)&”.htm”
最好给要加密的页码上再跟进一个或多个字符,如:page_name=Md5(I&“任意一个或几个字母”,16)&”.htm”
因为MD5是无法反解密的,别人看到的会页字母是MD5加密后的结果,所以加人也无法知道你在 I 后面跟进的字母是什么,除非他用暴力****MD5,不过不太现实。
二、页面代码规则防采集对策
如果说我们的内容页面无代码规则,那么别人就无法从你的代码中提取他们所需要的一条条内容。
所以我们要的这一步做到防采集,就要使代码无规则。
实现方法:
使对方需要提取的标记随机化
1、定制多个网页模板,每个网页模板里的重要HTML标记不同,呈现页面内容时,随机选取网页模板,有的页面用CSS+DIV布局,有的页面用table布局,此方法是麻烦了点,一个内容页面,要多做几个模板页面,不过防采集本身就是一件很烦琐的事情,多做一个模板,能起到防采集的作用,对很多人来说,都是值得的。
2、如果嫌上面的方法太麻烦,把网页里的重要HTML标记随机化,也可以。
做的网页模板越多,html代码越是随机化,对方分析起内容代码时,就越麻烦,对方针对你的网站专门写采集策略时,难度就更大,在这个时候,绝大部分人,都会知难而退,因为这此人就是因为懒,才会采集别人网站数据嘛~~~再说一下,目前大部分人都是拿别人开发的采集程序去采集数据,自己开发采集程序去采集数据的人毕竟是少数。
还有些简单的思路提供给大家:
1、把对数据采集者重要,而对搜索引擎不重要的内容用客户端脚本显示
2、把一页数据,分为N个页面显示,也是加大采集难度的方法
3、用更深层的连接,因为目前大部分采集程序只能采集到网站内容的前3层,如果内容所在的连接层更深,也可以避免被采集。不过这样可能会给客户造成浏览上的不便。
如:
大多网站都是 首页—-内容索引分页—-内容页
如果改成:
首页—-内容索引分页—-内容页入口—-内容页
注:内容页入口最好能加上自动转入内容页的代码
⑻ 怎样用PHP代码自动获得文件名
<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("store",$db);
function CheckPHPExE($filename){
$img_exts = array("jpg");
foreach($img_exts as $this_ext){
if(preg_match("/\.$this_ext$/",$filename)){
return true;
}
}
return false;
}
function listDir($dir){
if(is_dir($dir)){
if ($dh = opendir($dir)){
while (($file= readdir($dh)) !== false){
if((is_dir($dir."/".$file)) && $file!="." && $file!=".."){
listDir($dir."/".$file."/");
}else{
if($file!="." && $file!=".."){
if(CheckPHPExE($file)){
$file = Eregi_replace($file,".jpg","");
$sql = "INSERT INTO cart (proct_images) VALUES ('$file')";
$result = mysql_query($sql);
// echo $file."<br>";
}
}
}
}
closedir($dh);
}
}
}
listDir("c:\wamp\www\img ");
echo "<script>alert(' 运行完成');</script>";
?>
回复一下你的疑惑:
程序只是一个简单的、最基本的代码,还有具体的检测部分是需要你自己去完成的,我只是给你一个简单的基本的思路来引导你一下。
1 程序没有写执行次数,100张图片有3000多也许是你执行了30次
2 thubm.db是系统的一个文件,隐藏属性的,在普通模式下是看不见的,它也插入进数据库中是因为程序没有代码检测文件是不是JPG文件。只要是那个文件夹下的文件都会插入进数据库中。
3 只想插入XXXX的,还是可以加文件名判断,。
以上加了一个文件类型判断,还有就是执行完会弹出个窗口提示下,不至于你运行N次,判断数据库纪录等
⑼ php获取file文件名
<?php
if($_FILES["file"]["error"]>0){
echo"Error:".$_FILES["file"]["error"]."<br/>";
}
else{
echo"Upload:".$_FILES["file"]["name"]."<br/>";
echo"Type:".$_FILES["file"]["type"]."<br/>";
echo"Size:".($_FILES["file"]["size"]/1024)."Kb<br/>";
echo"Storedin:".$_FILES["file"]["tmp_name"];
}
?>
<metacharset="UTF-8">
<formaction=""method="post"enctype="multipart/form-data">
<inputtype="file"name="file"><br/>
<inputtype="submit"value="提交">
</form>
通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。
第一个参数是表单的 input name,第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error"。就像这样:
$_FILES["file"]["name"] - 被上传文件的名称
$_FILES["file"]["type"] - 被上传文件的类型
$_FILES["file"]["size"] - 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码
望采纳 Thx