首页 > 后端开发 > 正文

php引用函数的使用方法 PHP的unlink函数用不了

2024-08-27 16:52:25 | 我爱编程网

php引用函数的使用方法 PHP的unlink函数用不了相关内容,小编在这里做了整理,希望能对大家有所帮助,关于php引用函数的使用方法 PHP的unlink函数用不了信息,一起来了解一下吧!

本文目录一览:

php引用函数的使用方法 PHP的unlink函数用不了

php引用函数的使用方法

在技术学习的道路上,能掌握一些有用的技巧,对于初学者是非常有帮助的,下面是php引用函数的使用方法,希望大家会喜欢。

1.不要在你的应用程序中gzip输出,让apache来做

考虑使用ob_gzhandler?不,别这样做。它没有任何意义。PHP应该是来写应用程序的。不要担心PHP中有关如何优化在服务器和浏览器之间传输的数据。

使用apache mod_gzip/mod_deflate通过.htaccess文件压缩内容。

2.从php echo javascript代码时使用json_encode

有些时候一些JavaScript代码是从php动态生成的。

$images = array( 'myself.png' , 'friends.png' , 'colleagues.png');

$js_code = '';foreach($images as $image)

{

$js_code .= "'$image' ,";

}

$js_code = 'var images = [' . $js_code . ']; ';echo $js_code;//Output is var images = ['myself.png' ,'friends.png' ,'colleagues.png' ,];

放聪明点。使用json_encode:

$images = array( 'myself.png' , 'friends.png' , 'colleagues.png');

$js_code = 'var images = ' . json_encode($images);

echo $js_code;//Output is : var images = ["myself.png","friends.png","colleagues.png"]

这不是很整洁?

3.在写入任何文件之前检查目录是否可写

在写入或保存任何文件之前,请务必要检查该目录是否是可写的,如果不可写的话,会闪烁错误消息。这将节省你大量的“调试”时间。当你工作于Linux时,权限是必须要处理的,并且会有很多很多的权限问题时,当目录不可写,文件无法读取等的时候。

请确保你的应用程序尽可能智能化,并在最短的时间内报告最重要的信息。

$contents = "All the content";

$file_path = "/var/www/project/content.txt";

file_put_contents($file_path , $contents);

这完全正确。但有一些间接的问题。file_put_contents可能会因为一些原因而失败:

父目录不存在

目录存在,但不可写

锁定文件用于写入?

因此,在写入文件之前最好能够一切都弄明确。

$contents = "All the content";

$dir = '/var/www/project';

$file_path = $dir . "/content.txt";if(is_writable($dir))

{

file_put_contents($file_path , $contents);

}else{    die("Directory $dir is not writable, or does not exist. Please check");

}

通过这样做,你就能得到哪里文件写入失败以及为什么失败的准确信息。

4.改变应用程序创建的文件的权限

当在Linux环境下工作时,权限处理会浪费你很多时间。因此,只要你的php应用程序创建了一些文件,那就应该修改它们的权限以确保它们在外面“平易近人”。否则,例如,文件是由“php”用户创建的,而你作为一个不同的用户,系统就不会让你访问或打开文件,然后你必须努力获得root权限,更改文件权限等等。

// Read and write for owner, read for everybody elsechmod("/somedir/somefile", 0644);// Everything for owner, read and execute for otherschmod("/somedir/somefile", 0755);

5.不要检查提交按钮值来检查表单提交

if($_POST['submit'] == 'Save')

{    //Save the things}

以上代码在大多数时候是正确的,除了应用程序使用多语言的情况。然后“Save”可以是很多不同的东西。那么你该如何再做比较?所以不能依靠提交按钮的值。相反,使用这个:

if( $_SERVER['REQUEST_METHOD'] == 'POST' and isset($_POST['submit']) )

{    //Save the things}

现在你就可以摆脱提交按钮的值了。

6.在函数中总是有相同值的地方使用静态变量

//Delay for some timefunction delay(){

$sync_delay = get_option('sync_delay');    echo "

Delaying for $sync_delay seconds...";

sleep($sync_delay);    echo "Done

";

}

相反,使用静态变量:

//Delay for some timefunction delay(){    static $sync_delay = null;    if($sync_delay == null)

{

$sync_delay = get_option('sync_delay');

}    echo "

Delaying for $sync_delay seconds...";

sleep($sync_delay);    echo "Done

";

}

7.不要直接使用$ _SESSION变量

一些简单的例子是:

$_SESSION['username'] = $username;

$username = $_SESSION['username'];

但是这有一个问题。如果你正在相同域中运行多个应用程序,会话变量会发生冲突。2个不同的应用程序在会话变量中可能会设置相同的键名。举个例子,一个相同域的前端门户和后台管理应用程序。

因此,用包装函数使用应用程序特定键:

define('APP_ID' , 'abc_corp_ecommerce');//Function to get a session variablefunction session_get($key){

$k = APP_ID . '.' . $key;    if(isset($_SESSION[$k]))

{        return $_SESSION[$k];

}    return false;

}//Function set the session variablefunction session_set($key , $value){

$k = APP_ID . '.' . $key;

$_SESSION[$k] = $value;    return true;

}

8.封装实用辅助函数到一个类中

所以,你必须在一个文件中有很多实用函数:

function utility_a(){    //This function does a utility thing like string processing}function utility_b(){    //This function does nother utility thing like database processing}function utility_c(){    //This function is ...}

自由地在应用程序中使用函数。那么你或许想要将它们包装成一个类作为静态函数:

class Utility{    public static function utility_a()

{

}    public static function utility_b()

{

}    public static function utility_c()

{

}

}//and call them as $a = Utility::utility_a();

$b = Utility::utility_b();

这里你可以得到的一个明显好处是,如果php有相似名称的内置函数,那么名称不会发生冲突。

从另一个角度看,你可以在相同的应用程序中保持多个版本的相同类,而不会发生任何冲突。因为它被封装了,就是这样。

9.一些傻瓜式技巧

使用echo代替print

使用str_replace代替preg_replace,除非你确定需要它

不要使用short tags

对于简单的字符串使用单引号代替双引号

在header重定向之后要记得做一个exit

千万不要把函数调用放到for循环控制行中。

isset比strlen快

正确和一致地格式化你的'代码

不要丢失循环或if-else块的括号。

不要写这样的代码:

if($a == true) $a_count++;

这绝对是一种浪费。

这样写

if($a == true)

{

$a_count++;

}

不要通过吃掉语法缩短你的代码。而是要让你的逻辑更简短。使用具有代码高亮功能的文本编辑器。代码高亮有助于减少错误。

10. 使用array_map快速处理数组

比方说,你要trim一个数组的所有元素。新手会这样做:

foreach($arr as $c => $v)

{ 我爱编程网

$arr[$c] = trim($v);

}

但它可以使用array_map变得更整洁:

$arr = array_map('trim' , $arr);

这适用于trim数组$arr的所有元素。另一个类似的函数是array_walk。

11.使用php过滤器验证数据

你是不是使用正则表达式来验证如电子邮件,IP地址等值?是的,每个人都是这样做的。现在,让我们试试一个不同的东西,那就是过滤器。

php过滤器扩展程序将提供简单的方法来有效验证或校验值。

12.强制类型检查

$amount = intval( $_GET['amount'] );

$rate = (int) $_GET['rate'];

这是一种好习惯。

13.使用set_error_handler()将Php错误写入到文件

set_error_handler()可以用来设置自定义的错误处理程序。在文件中编写一些重要的错误用于日志是个好主意。

14.小心处理大型数组

大型的数组或字符串,如果一个变量保存了一些规模非常大的东西,那么要小心处理。常见错误是创建副本,然后耗尽内存,并得到内存溢出的致命错误:

$db_records_in_array_format; //This is a big array holding 1000 rows from a table each having 20 columns , every row is atleast 100 bytes , so total 1000 * 20 * 100 = 2MB$cc = $db_records_in_array_format; //2MB moresome_function($cc); //Another 2MB ?

当导入csv文件或导出表到csv文件时,上面这样的代码很常见。

像上面这样做可能经常会由于内存限制而让脚本崩溃。对于小规模的变量它不会出现问题,但当处理大型数组时一定要对此加以避免。

考虑通过引用传递它们,或者将它们存储在一个类变量中:

$a = get_large_array();

pass_to_function(&$a);

这样一来,相同的变量(并非其副本)将用于该函数。

class A{    function first()

{        $this->a = get_large_array();        $this->pass_to_function();

}    function pass_to_function()

{        //process $this->a

}

}

尽快复原它们,这样内存就能被释放,并且脚本的其余部分就能放松。

下面是关于如何通过引用来赋值从而节省内存的一个简单示例。

<?phpini_set('display_errors' , true);

error_reporting(E_ALL);

$a = array();for($i = 0; $i < 100000 ; $i++)

{

$a[$i] = 'A'.$i;

}echo 'Memory usage in MB : '. memory_get_usage() / 1000000 . '

';

$b = $a;

$b[0] = 'B';echo 'Memory usage in MB after 1st copy : '. memory_get_usage() / 1000000 . '

';

$c = $a;

$c[0] = 'B';echo 'Memory usage in MB after 2st copy : '. memory_get_usage() / 1000000 . '

';

$d =& $a;

$d[0] = 'B';echo 'Memory usage in MB after 3st copy (reference) : '. memory_get_usage() / 1000000 . '

';

一个典型php 5.4机器上的输出是:

Memory usage in MB : 18.08208Memory usage in MB after 1st copy : 27.930944Memory usage in MB after 2st copy : 37.779808Memory usage in MB after 3st copy (reference) : 37.779864

因此可以看出,内存被保存在第3份通过引用的副本中。否则,在所有普通副本中内存将被越来越多地使用。

15.在整个脚本中使用单一的数据库连接

请确保你在整个脚本使用单一的数据库连接。从一开始就打开连接,使用至结束,并在结束时关闭它。不要像这样在函数内打开连接:

function add_to_cart(){

$db = new Database();

$db->query("INSERT INTO cart .....");

}function empty_cart(){

$db = new Database();

$db->query("DELETE FROM cart .....");

}

有多个连接也不好,会因为每个连接都需要时间来创建和使用更多的内存,而导致执行减缓。

在特殊情况下。例如数据库连接,可以使用单例模式。

php引用函数的使用方法 PHP的unlink函数用不了

PHP的unlink函数用不了

如果权限没有问题的话,那就是你没有关闭文件操作流。
你试试下面的结构
$fp = fopen(文件名路径,'r');
//你的操作
......
//注意关闭文件操作流
fclose( $fp );
//再删除文件
@unlink( 文件名路径 );
我试了,这样应该好使的。

php引用函数的使用方法 PHP的unlink函数用不了

PHP调用了一个错误的函数?

我爱编程网(https://www.52biancheng.com)小编还为大家带来PHP调用了一个错误的函数?的相关内容。

一、错误类型:PHP致命错误

Error type: PHP Fatal error

Fatal error: Call to undefined function (a) in (b) on line (c)

二、错误描述:

该错误报告表示你正企图调用未经定义的函数(function),其中

a----表示未定义的函数名;

b----出现该段脚本的路径;

c----企图调用未定义函数的行号。

d----第二次定义该函数时的行号。

三、原因及解决方法:

  1. 原因1:你的确没有声明过该函数。例如,直接调用下面的函数

    myFunction();// 这里根本就没有这个函数

    结果如下
    Fatal error:Call to undefinedfunction myFunction()in(path) on line 1

    解决:
    仔细检测你的程序中是否声明过该函数。

  2. 原因2:你在函数声明时用的名称和你在调用时用的名称不相同,例如

    function myFunction(){// do something}myFuntion();// 这里少写了一个字母C
    解决:这是很多初学者最容易犯的一个错误。有时候因为少写,或者多写,写错一个字母而导致很长时间都检查不出来。

  3. 原因3:你在老版本的PHP下调用新版本的PHP内置函数而产生的错误。因为你的老版本中这个PHP内置函数根本就不存在。例如,你在PHP老版本中调用mime_content_type()
    Fatal error:Call to undefinedfunction mime_content_type()
    解决:翻开PHP手册仔细核对你所使用的内置函数到底适用于PHP的哪些版本。在PHP手册当中对每一个内置函数都注明了详细的版本限制。例如(PHP 4 >= 4.3.0, PHP 5).所以,解决办法就是升级你的PHP版本,或者改换同类型的其他内置函数。

  4. 原因4:你对该函数的调用代码,写在了与函数声明不同的文件中。例如,你在a.php文件中写了这样的代码
    myFunction();
    而你的函数声明却在b.php中
    function myFunction(){// do something}
    解决:这种情况一般发生在PHP初学者身上,他们在调用函数时却忘了PHP不会自动的进行文件关联或引用。也就是说上面的情况中a.php与b.php根本就不会产生任何关系。这个时候你需要使用include()之类的函数将两者关联起来。

  5. 原因5:你对该函数的调用代码,写在了与函数声明不同的文件中,你也引入了该文件。但是你的函数调用代码位于引入文件代码之前。例如,你在a.php执行函数调用,而在b.php中声明函数。

    a.php代码

    myFunction();include('b.php');

    b.php代码

    function myFunction(){ echo '123';}

  6. 解决:像上面的代码这样,在执行时就会报错。因为PHP在执行函数调用时找不到该函数的声明。所以,绝对不要把函数的调用写在函数声明文件被引入之前。当然,如果你是在同一个php文件当中,你完全可以把调用函数写在函数声明之前。

  7. 原因6:你连续两次使用相同名称来定义一个函数,例如

    function myFunction(){}

    function myFunction(){}

    结果如下
    Fatal error:Cannot redeclare myfunction()(previously declared in(path):2)in(path) on line 1

    解决:
    找到已经声明过的函数,看看是什么需要导致你再次定义了它。如果只是单纯的忘记之前已经定义过,那么将其中一个声明删除掉就是。当然,你的情况可能给复杂。比如你的脚本文件排列异常混乱,并且你可能使用了大量的include()之类的函数,这将导致你很难从混乱的代码当中理清思路。

以上就是php引用函数的使用方法 PHP的unlink函数用不了全部内容了,了解更多相关信息,关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php引用函数的使用方法 PHP的unlink函数用不了”相关推荐
PHP unlink例子 PHP的unlink函数用不了
PHP unlink例子 PHP的unlink函数用不了

PHPunlink例子PHPunlink函数用于删除一个文件。下面是一个使用unlink函数的PHP示例。在这个示例中,我们首先定义了一个变量$file,它将用于存储我们要删除的文件的名称。在这个例子中,我们选择了一个名为"test.txt"的文件。然后,我们使用了unilink函数来删除这个文件。这个函数需要一个参数,即我们要删除的文件的名称。在这个例子中,我们传递了$file

2024-09-12 11:52:49
php调用函数方法 php引用函数的使用方法
php调用函数方法 php引用函数的使用方法

PHP直接调用函数和调用另外一个文件中的函数的区别//如果是PHP文件中的函数,唯一的区别是:先引入外部文件,然后直接调用。//如果是外部类文件中的函数,需要引入,然后new 对象后,再调用该对象的函数。$msg=test_msg();function test_msg(){echo "";}//调用外部文件中的函数//首先引入文件include_once 'file.php';$msg=t

2024-08-03 11:18:03
php引用函数的使用方法(php中function函数的用法)
php引用函数的使用方法(php中function函数的用法)

php引用函数的使用方法在技术学习的道路上,能掌握一些有用的技巧,对于初学者是非常有帮助的,下面是php引用函数的使用方法,希望大家会喜欢。1.不要在你的应用程序中gzip输出,让apache来做考虑使用ob_gzhandler?不,别这样做。它没有任何意义。PHP应该是来写应用程序的。不要担心PHP中有关如何优化在服务器和浏览器之间传输的数据。使用apachemod

2024-12-04 18:46:17
php 常用bc函数 php引用函数的使用方法
php 常用bc函数 php引用函数的使用方法

php常用bc函数探索PHP中的强大计算工具:bc函数集在PHP的世界里,bcadd就像是一位精密的计算器,它为我们提供了两个任意精度数字之间无比精准的加法运算,无论是微小的数字还是天文数字,都能轻松应对。bcsub则扮演着减法专家的角色,确保每一个细微的减法操作都能得到准确的结果,无论是商业计算还是科学计算,它都能胜任有余。乘法任务就交给bc

2024-08-18 20:17:49
php函数阅读 php引用函数的使用方法
php函数阅读 php引用函数的使用方法

php定义一个函数,返回3个参数中的最大值&lt;?phpfunctionmaxv($a,$b,$c){$m=$a&gt;$b?$a:$b;$m=$c&gt;$m?$c:$m;return$m;}echomaxv(1,2,3)."\n";echomaxv(2,3,1)."\n";echomaxv(3,1,2)."\n";?&gt;下列有关PHP函数

2024-09-11 08:38:31
php调用一个函数 php引用函数的使用方法
php调用一个函数 php引用函数的使用方法

php点击按钮调用一个函数给你一个最简单的示例&lt;?phpfunctionquery(){........代码......}if($_POST["do"]=="yes"){query();}?&gt;&lt;inputtype="button"value="按钮"onclick="javascript:cmdclick()"/&gt;&lt;scr

2024-08-24 18:22:56
PHP中的函数-- foreach()的用法详解 php引用函数的使用方法
PHP中的函数-- foreach()的用法详解 php引用函数的使用方法

关于PHP跳出循环continue函数的问题条件分支不是循环。而是从上至下执行代码的。如果你在第一个if中就已经continue了。那么就是跳出了本次代码执行了。不仅仅是跳出第一个if语句块了。而且continue一般不是用在这里的。常用在循环语句中。如for、while、do...while等。还有其他两个如break、exit这三个理解了,就知道什么时候该用

2024-10-29 23:24:02
PHP函数代码基础知识?(php引用函数的使用方法)
PHP函数代码基础知识?(php引用函数的使用方法)

PHP函数代码基础知识?我们在学习PHP开发相关基础知识的时候,对于不同的开发原理以及代码的使用都是基本的能力要求。今天,南邵电脑培训就一起来了解PHP开发基础知识中的函数代码都有哪些。array()array(value1,value2..)创建数组array_chunk(array,size,preserve_keys)把一个数分割成新的数组块[tk]array

2024-08-28 18:21:20