PHP笔记
PHP笔记
1.php4种标签风格及3种注释风格
i.标签风格
a.XML风格
echo "hello world!";
?>
b.ASP风格
<%
echo "hello world!";
%>
c.脚本风格
echo "hello world!";
d.极简风格
注意:当使用极简风格和ASP风格时需要在php.ini文件中配置short_open_tag和asp_tags设置为on
ii.注释风格
a.c++风格的单行注释 //
b.c++风格的多行注释 /**/
c.shell风格的注释 #
2.php脚本执行的3种参数传递与解析
a.$argc和$argv 传递参数
echo "接收到{$argc}个参数";
print_r($argv);
?>
执行结果: php.exe .\hello.php hello world -a 123
paras count : 5Array
(
[0] => .\hello.php
[1] => hello
[2] => world
[3] => -a
[4] => 123
)
b.getopt()函数解析参数
$param_arr = getopt('a:b:c:');
print_r($param_arr);
?>
执行结果:php test.php -a 345 -b 12q3
Array
(
[a] => 345
[b] => 12q3
)
c.提示用户输入
fwrite(STDOUT,'请输入您的博客名:');
echo '您输入的信息是:'.fgets(STDIN);
?>
3.php数据类型
php的变量使用$开头,属于动态数据类型,数据类型包括:
boolean string integer float array object resource null值
数据类型的定义:
a.string 单引号和双引号字符串的区别
同shell中的单双引号的区别相同,双引号的字符串需要先执行递归的变量替代
$a='hello world';
echo "hi,$a";
b1.string的界定符输出
目的:增强可读性
$string=<<
hi,
hello world
std; //结束
b2.格式化字符串
$formatted = sprintf ("hello,%s", "world");
printf($formatted);
c.array3种定义
$array=array("v1","v2");//数值自动键,从0开始
$array[key]="vkey";//字符指定键
$array=array(key1=>v1,key2=>v2) //字符键和数字键可以混用
d.null值
通常会用于变量申明
$str=null;
is_null($str) //true
$str="str"
is_null($str) //false
unset($str)
is_null($str) //true
e.数据类型之间的强制转换
$str="123"
$num=(integer)$str
$bl=(boolean)$str
f.数据类型检测函数
is_bool(),is_string,is_float(),is_double(),is_integer(),is_int(),is_null(),is_array(),is_object(),is_numeric()
g.常量定义函数
define(string 常量名,值,true/false大小写敏感)
bool defined(string 常量名) //判断该常量是否已经定义
define("ms",123)
echo ms+24;
h.php预定义常量
__FILE__ PHP程序文件名
__LINE__ PHP当前文件行数
PHP_VERSION
PHP_OS 执行PHP的OS
...
i.string的+运算和。运算
string + :表示将字符串转换成数字再执行+ (只转换字符串首部的数字,首部为字母则结果为0)
string . :表示将字符串拼接
$n="3.14r";
$m=1;
echo $n.$m , $n+$m //3.14r1 4.14
4.变量
a.变量的引用定义&
$i="hello"
$j=&$i
$i="$i,world"
echo $i // hello,world
echo $j // hello,world
b.变量的3种作用域
i.局部变量
函数中定义的变量,作用域为整个函数
ii.全局变量
函数以外的变量,作用域为当前PHP文件,但函数内部不可用,除非在函数中申明global才可作用于函数中
iii.静态变量
定义于函数中,函数结束时不会被释放
$msg="hello"; //全局变量
function hello(){
static $msg1="hello";//静态变量
global $msg; //函数中使用全局变量
$msg1="hello" //局部变量
}
?>
c.变量的递归性(可变变量)
$a="hello,world";
$b="a"
echo $$b //将输出hello,world
d.php预定义变量
$_SERVER['SERVER_ADDR'] //当前运行脚本所在的服务器IP
$_SERVER['SERVER_NAME'] //...服务器名
$_SERVER['REQUEST_METHOD'] //请求方法
$_SERVER['REMOTE_ADDR'] //
$_SERVER['REMOTE_HOST'] //
$_SERVER['REMOTE_PORT'] //
$_SERVER['SCRIPT_FILENAME'] //当前脚本的绝对路径
$_SERVER['SERVER_PORT'] //
$_SERVER['DOCUMENT_ROOT'] //当前脚本的文档根目录
$_COOKIE //通过HTTPCookie传递到脚本的信息(数组)
$_SESSION //包含与所有回话有关的信息(数组)
$_POST //包含通过POST方法传递的相关信息(数组)
$_GET //包含通过GET方法传递的相关信息(数组)
$_GLOBALS //所以已定义的全局变量组成的数组,变量名是该数组的索引(数组)
5.运算符
c语言中的所有运算符适用于PHP,并有其他运算符:
@:错误屏蔽运算符,可以屏蔽表达式产生的错误
$err=@(5/0) ;//防止系统报错,使得程序可以继续运行
6.函数
a.函数定义与调用
function fun_name($arg1,&$arg2,$arg3=value,...){
}
function exap($num){
return $num+10;
}
echo exap(10);
特点:入参的传递有2种值传递和引用传递,参数可以有默认值
b.函数作为变量值时的调用(变量函数)
$fun="exap";
$fun(10);
c.函数返回值得引用<=>函数的引用
$a=&exap(10)
echo $a."
";
unset($a) //解引用或解变量
7.流控制语句
a.if,switch,while,do...while,for与C语言相同
b.foreach 用于数组和对象
foreach(array_expression as $value) 或者 foreach(array_expression as $key => $value)
8.字符串处理
a.trim(string str[,string charlist]),ltrim,rtrim
默认删除字符串左右两边所有的空格,\0,\t,\n,\x0B,\r
b.字符串转义
"\",addcslashes(),stripcslashes()
例子:$m1="select * from t where book='m'";
$m="select * from t where book=\'m\'";
$m=addcslashes($m1)
也可以去转义
stripcslashes($m)
c.子字符串
string substr(string str,int start[,int len])
d.比较字符串
int strcmp(string str1,string str2)
int strnatcmp(string str1,string str2) 不区分大小写
int strncmp(string str1,string str2,int len)
e.字符串查找
string strstr(string str,string findstr) 返回findstr第一次出现的位置到str末尾的子字符串
int substr_count(string str,string findstr) 查找子字符串出现的次数
f.字符串替代
string str_ireplace(string new_substr,string old_substr,string str[,int count替代次数])
string substr_replace(string str,string repl,int star[,int len])
g.分割字符串
array explode(string sep,string str[,int limit限制返回值最多包含的元素])
h.合成字符串
string implode(string glue,array)
9.正则表达式
a.bool ereg/e regi(string pattern,string str[,returnarray]) 在字符串str中匹配pattern模式, 将匹配的字符放在返回数组中;如果匹配成功返回true,否则返回false。
b.string ereg_replace/eregi_replace(string pattern,string rep,string str) 使用rep替代 str中所有匹配pattern的子串,返回最后替代的结果
c.array split/spliti(string pattern,string str[,int limit]) 使用pattern分割str,返回 分割后的数组,最后返回limit个元素
d. array preg_grep(string pattern ,array input) 使用pattern匹配数组array中的所有元素, 返回完全匹配的元素(而不是部分匹配);pattern必须使用"/.../"包围
e.preg_match/preg_match_all(string pattern,string str [,array matches]) 使用pattern 匹配str中所有的子串并返回,返回匹配的次数
f. string preg_quote(string str[,string delimiter]) 将str中的所有特殊字符自动转义, delimiter字符串指定的所有字符也将被转义(即加上一个‘\’)
g.mixed preg_replace(mixed pattern, mixed replacement,mixed str[,int limit]) 使用pattern在str中匹配,将匹配的子串替代为replacement,最多替代limit次
h.mixed preg_replace(mixed pattern, callback ck,mixed str[,int limit]) 与上述函数相同,但是是使用ck函数的返回值来替代,ck的入参是一个数组,该数组是每一个匹配返回的所有分组
i.array preg_split(string pattern,string str[,int limit]) 使用pattern模式分割str。
10.数组
print_r(mixed)可以打印数组
each()和list()
explode()字符串拆分成数组
implode()数组组合成字符串
int count(array[,int mode]) 统计数组元素个数(mode==1递归统计)
mixed array_search(key,array) 在array中查找键值,如果找到返回键值;否则返回FALSE
mixed array_pop(array) 获取并删除数组中的最后一个元素,如果数组为空则返回null
int array_push(array,mixed v1[,v2,...]) 向数组尾部插入元素,并返回数组中的元素总数
array array_unique(array) 删除数组中重复的元素
11.php与web表单交互数据
a.表单用于浏览器发送数据到服务器,并使用action指明使用哪个url进行表单数据的处理。浏览器的数据只能通过表单来传送。表单的元素较多:checkbox,submit,reset,button,textarea...
b.GET和POST提交表单的区别:使用GET提交的表单将会将表单数据作为参数附加到url中进行提交;而POST方法不会。
c.关于全局变量$_POST,$_GET,$_SESSION
$_POST:数组格式,POST方法传递表单,使用表单元素的元素名获取元素值:$_POST['user'] .
$_GET :数组格式,GET方法传递表单,使用表单元素的元素名获取元素值:$_GET['user']
$_SESSION:session传参获取变量。使用表单元素的元素名获取元素值:$_SESSION['user']
根据表单元素的不同,传回来的'user'键对应的值有可能是一个数组
d.在web中嵌入php脚本的方法只有2种:
使用HTML标记编写php脚本;对表单元素的value属性进行赋值
include("index.php");//可以引用外部文件解耦合,多次引用将多次包含,如果只引用一次可以使用require_once
require_once("index.php"); //require
?>
$hidden="yg0025";
?>
$re=require("...")函数及其变种都具有返回值,返回调用的php文件中return函数的值
return "hello";
?>
include 和require的执行过程都是先将代码原本的拷贝到当前文件再执行。
return的效果也可以理解成将代码返回。return后面的代码将不会被拷贝。
这种拷贝有一个缺陷就是:同名变量或类有可能产生错误。
12.php与JavaScript交互
a.js的一些常识
js是一种由浏览器运行解析的脚本(也可以由服务器执行)。可以在不与服务器交互的条件下实现动态网页。
事件驱动:js是基于对象的语言。采用了事件驱动,当激发了某些事件时将执行相应的js代码。
js事件相应模式:
js的常用事件:onclick,ondblclick,onmousedown,...可以在网上查询js常用事件
与html解耦合: 包含外部文件
在页面底部(
之前)引入js脚本,原因:由于js加载阻塞页面,而HTML是下载多少渲染多少,因此我们把它至于页面底部,让UI线程先执行完再加载js脚本
13.日期与时间
14.cookie与session
cookie:
a.cookie是从一个web页面到下一个web页面的数据传递方法,存储在客户端;session是让数据在页面中持续有效的方法,存储在服务器端。功能:记录访客的信息;在页面之间传递变量;将所查看的Internet页缓存在cookie临时文件夹中;
b.php设置cookie
必须写在文件开头
setcookie("tmcookie","www.baidu.com");//生命周期默认为浏览器会话周期
setcookie("tmcookie","www.baidu.com",time()+60);//有效期60秒
setcookie("tmcookie","www.baidu.com",time+60,"/tm/",".baidu.com",1); //设置有效目录和域名
setcookie("tmcookie","",time()-1);//删除cookie
?>
浏览器会定时清流cookie,即使是未过期cookie也可能在cookie容量满时被清理
session
a.session以随机且唯一的session_id为文件名保存在服务器的文件中,该session_id则是保存在cookie中
写session:
session_start();
$_SESSION["admin"]="hello";//完成写session
?>
读session
if(!empty($_SESSION['admin'])) //将判断cookie中是否存在session_id和‘admin’字段,否则均返回null
$user=$_SESSION['admin']
?>
删除session
unset($_SESSION['admin']);
$_SESSION=array();//删除所有session
session_destory();//彻底销毁会话,确定会话结束时,应该这么做
b.session的过期时间(只有存在cookie时才能使用)
i.session_set_cookie_params将设置session_id的过期时间
session_set_cookie_params(1*60);
session_start();
$_SESSION["admin"]='hello'
?>
ii.setcookie设置session_id的过期时间
session_start();
setcookie(session_name(),session_id(),time()+60,'/');
$_SESSION["admin"]='hello'
?>
c.session只能使用当前session,如果想用上一个session,那是不可能的,因为无法得知session id。
d.session_id的4种传递方式
i.通过cookie传递,默认.需要客户端浏览器打开cookie。
ii.设置php.ini中的session.use_trans_sid=1,让PHP自动跨页面传递session_id
iii.通过GET方法,隐藏表单传递session_id
iv.使用文件或者数据库存储session_id,在页面间传递中手动调用
15.php的图形图像处理技术
16.php文件处理
17.php面向对象
a.定义
与c++相似
final class demo{
public function __construct(){ //构造函数
echo __METHOD__.":".__LINE__."\n";
}
public function func($param){ //普通函数
$param++;
echo "method func $paramn";
}
public function __destruct(){ //析构函数
echo __METHOD__.":".__LINE__."\n";
echo $this->sex;
}
//public $name = 123+456; 错误:初始化时不能带有计算
static $a = '$a';
const A = 'A';
public $name = '凤姐';
protected $sex = '男+女';
private $age = 23;
}
类的构造及成员的调用:$demo = new demo(); $demo->func(1);
成员的可见性有:public protected private 3种
其它修饰符:static final const
成员的调用方式: $this->property
b.类中的魔术方法(具有一定意义的方法)
i. 魔术方法必须被定义为公共的,所有其他魔术方法都必须如此
ii. 从PHP 5以后的版本,PHP中的类就可以使用魔术方法了。其规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术方法,接下来列出一些魔术方法,如果大家想详细了解可以针对某一个进行查询了解,这里就不大篇幅的介绍了。
b1.__construct() 构造方法
__destruct()析构方法
b2.__autoload() 自动加载魔术方法。有的时候,在文件众多的项目中,要一一将所需类的文件都 include 进来,PHP 提供了 __autoload()方法,它会在试图使用尚未被定义的类时自动调用。 通过调用此函数,脚本引擎在PHP 出错失败前有了最后一个机会加载所需的类。
加入在Person.php中存在Person类,则当在另一个文件中调用时可以这样:
function __autoload($class_name)
{
require_once $class_name.'.php';
}
//当前页面 Pserson 类不存在则自动调用 __autoload() 方法,传入参数 Person
$p1 = new Person("张三","20");
$p1 -> say();
?>
b3.__get() 当调用一个未定义的属性时,此方法会被触发,传递的参数是被访问的属性名。
__set() 给一个未定义的属性赋值时,此方法会被触发,传递的参数是被设置的属性名和值。 这里的没有声明包括当使用对象调用时,访问控制为proteced,private的属性(即没有权限访问的属性)。
__isset() 当在一个未定义的属性上调用isset()函数时调用此方法
__unset() 当在一个未定义的属性上调用unset()函数时调用此方法
class Person {
private $name;
private $sex;
private $age;
//__set()方法用来设置私有属性
function __set($property_name, $value) { //在属性赋值时会被调用
echo "在直接设置私有属性值的时候,自动调用了这个 __set() 方法为私有属性赋值 ";
$this->$property_name = $value;
}
//__get()方法用来获取私有属性
function __get($property_name) {
echo "在直接获取私有属性值的时候,自动调用了这个 __get() 方法 ";
return isset($this->$property_name) ? $this->$property_name : null;
}
}
$p1=new Person();
$p1->name = "张三";
echo "我的名字叫:".$p1->name;
?>
运行该例子,输出:
在直接设置私有属性值的时候,自动调用了这个 __set() 方法为私有属性赋值
在直接获取私有属性值的时候,自动调用了这个 __get() 方法
我的名字叫:张三
b4.__call( $method, $arg_array ) 当调用一个未定义的方法是调用此方法,这里的未定义的方法包括没有权限访问的方法;如果方法不存在就去父类中找这个方法,如果父类中也不存在就去调用本类的__call()方法,如果本类中不存在__call()方法就去找父类中的__call()方法。
b5.__clone()如果想复制一个对象则需要使用clone方法
如果想在克隆后改变原对象的内容,需要在类中添加一个特殊的 __clone() 方法来重写原本的属性和方法。__clone() 方法只会在对象被克隆clone的时候自动调用。
class Person {
private $name;
private $age;
function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
function say() {
echo "我的名字叫:".$this->name;
echo " 我的年龄是:".$this->age." ";
}
function __clone() {
$this->name = "我是假的".$this->name;
$this->age = 30;
}
}
$p1 = new Person("张三", 20);
$p1->say();
$p2 = clone $p1;
$p2->say();
?>
b6.
__toString()方法在将一个对象转化成字符串时自动调用,比如使用echo打印对象时
__sleep() 串行化的时候用
__wakeup 反串行化的时候调用
__set_state()当调用var_export()时,这个静态 方法会被调用(自PHP 5.1.0起有效)
__invoke当尝试以调用函数的方式调用一个对象时,__invoke 方法会被自动调用。
__callStatic(PHP 5.3.0以上版本有效) 是为了处理静态方法调用
c.继承与多态
c1.范围解析操作符(::)
作用:范围解析操作符或者更简单地说是一对冒号,可以用于访问静态成员,类常量,还可以用于覆盖类中的属性和方法。self,parent 和 static这三个特殊的关键字是用于在类定义的内部对其属性或 方法进行访问的。范围解析操作符(::)与类名连用,可以用于访问静态成员、方法和常量;与parent连用,可以访问被覆盖类中的成员和方法。
class MyClass
{
protected function myFunc() {
echo "MyClass::myFunc()\n";
}
}
class OtherClass extends MyClass
{
// 覆盖了父类的定义
public function myFunc()
{
// 但还是可以调用父类中被覆盖的方法
parent::myFunc();
echo "OtherClass::myFunc()\n";
}
}
$class = new OtherClass();
$class->myFunc();
/**
* 输出结果 ->
* MyClass::myFunc()
* OtherClass::myFunc()
*/
function mycall(MyClass $a){ //函数的入参可以指明类型也可以不指明
$a->myFunc();
}
mycall(new OtherClass()); 多态
?>
c2.接口interface与实现implements
class 子类 extends 父类 implemtns 接口1, 接口2, ...
{
......
}
interface User{
function getDiscount();
function getUserType();
}
//VIP用户 接口实现
class VipUser implements User{
// VIP 用户折扣系数
private $discount = 0.8;
function getDiscount() {
return $this->discount;
}
function getUserType() {
return "VIP用户";
}
}
d.对象的序列化与反序列化->存储
序列化完整过程包括两个步骤:一个是序列化,就是把对象转化为二进制的字符串,serialize() 函数用于序列化一个对象;另一个是反序列化,就是把对象被序列转化的二进制字符串再转化为对象,unserialize() 函数来反序列化一个被序列化的对象。这样整个过程下来,对象内的类型结构及数据都是 完整的。
$p1 = new Person("张三", 20);
$p1_string = serialize($p1);
//将对象序列化后写入文件
$fh = fopen("p1.text", "w");
fwrite($fh, $p1_string);
fclose($fh);
$p2 = unserialize(file_get_contents("p1.text"));
$p2 -> say();
?>
18.php 加密技术
19.php操作mysql数据库
resource mysql_connect("hostname","username","password"); //成功返回连接conn,失败返回null
mysql_select_db(string dbname[,resource conn]);//选择使用的数据库 mysql_query("dbname"[,conn])
$result=mysql_query(string query[,resource conn]);//适合所有sql语句,语句中不能加";"
$info=mysql_fetch_array($result[,int result_type]); 从数组结果中获取递归一行信息,返回数组;如果是select则$info的键为字段的名字,如果到底尾部则false
$info=mysql_fetch_object($result[,int result_type]); 获取一行作为对象,成员为字段名
$info=mysql_fetch_row($result[,int result_type]); 返回数组,但是是以下标索引的。
int mysql_num_rows()获取查询结果中总的记录数
20.php的PDO
a.支持的数据库
PDO支持MS SQL SERVER,MYSQL,ODBC,ORACLE,POSTGRE SQL等。
需要的php版本:php5.1以上
b.当数据库发生变化时只需要修改PDO的DSN数据源名称
c.PDO连接mysql
$dbh = new PDO('mysql:host=localhost;dbname=test', 'root', 'nsfocus123');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO user VALUES ('5', 'xiaohua');";
$stmt = $dbh->prepare($sql);
$stmt->execute();
echo $dbh->lastinsertid();
$sql = "SELECT * FROM user";
$stmt = $dbh->prepare($sql);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ // print_r($stmt->fetchAll() 以列名为索引的数组
print_r($row);
}
关于fetch的参数取值:
PDO::FETCH_ASSOC 从结果集中获取以列名为索引的关联数组。
PDO::FETCH_NUM 从结果集中获取一个以列在行中的数值偏移量为索引的值数组。
PDO::FETCH_BOTH 这是默认值,包含上面两种数组。
PDO::FETCH_OBJ 从结果集当前行的记录中获取其属性对应各个列名的一个对象。
PDO::FETCH_BOUND 使fetch()返回TRUE,并将获取的列赋给在bindParm()方法中指 定的相应变量。
PDO::FETCH_LAZY 创建关联数组和索引数组,以及包含列属性的一个对象,从而可以在这三种接口中任选一种。
21.ThinkPHP架构
22.一些有用的函数
a.trigger_error("输出信息", E_USER_ERROR);触发fatal错误,并退出程序执行
b.exit(0); 退出当前进程
c.$pid = pcntl_fork(); 创建子进程,需要pcntl模块
23.php的模块安装方法
a.下载需要安装的源码,编译生成.so或.dll
b.将动态库复制到php安装目录下的ext目录中
c.修改安装目录下的php.ini配置文件,在[php]字段中添加 extension=***.so
e.php -m |grep *** 查看模块是否安装成功
你可能感兴趣的:(php)
mac os 10.9 mysql_MAC OSX 10.9 apache php mysql 环境配置
AY05
mac os 10.9 mysql
#终端内运行sudoapachectlstart#启动Apachesudoapachectlrestart#重启Apachesudoapachectlstop#停止Apache#配置Apachesudovi/private/etc/apache2/httpd.conf#将里面的这一行去掉前面的##LoadModulephp5_modulelibexec/apache2/libphp5.so#配置P
2022-01-13 天气晴 心情好
楠楠的qzone
今天主要是吧系统的一些功能给转移到另外一个系统上,然后遇到了一个很差劲的客户,不过呢我也是见多了不去计较了,因为什么样的人都有,平常心就好。晚上去吧thinkphp6的基础知识好好的看了一下,还是学到了很多好东西
SQL笔记纯干货
AI入门修炼
oracle 数据库 sql
软件:DataGrip2023.2.3,phpstudy_pro,MySQL8.0.12目录1.DDL语句(数据定义语句)1.1数据库操作语言1.2数据表操作语言2.DML语句(数据操作语言)2.1增删改2.2题2.3备份表3.DQL语句(数据查询语言)3.1查询操作3.2题一3.3题二4.多表详解4.1一对多4.2多对多5.多表查询6.窗口函数7.拓展:upsert8.sql注入攻击演示9.拆表
从0到1学PHP(二):PHP 基本语法:构建代码的基石
奔跑吧邓邓子
项目攻略 php 开发语言 基本语法
目录一、PHP标记与注释1.1PHP的起始和结束标记1.2单行注释和多行注释二、变量与数据类型2.1变量的定义、命名规则和使用方法2.2数据类型详解2.3数据类型的转换三、运算符与表达式3.1各类运算符的使用3.2表达式的组成和运算规则一、PHP标记与注释1.1PHP的起始和结束标记在PHP编程中,起始标记是极为重要的基础概念。当PHP解析器处理文件时,一旦识别到结束标记,标记之外的内容会被忽略。
我的ThinkPHP5框架开发22讲:从入门到实践的探索之旅
a1237567892
安全
我的ThinkPHP5框架开发22讲:从入门到实践的探索之旅在编程的世界里,框架就像是一座座灯塔,照亮着开发者前行的道路。而当我第一次接触到ThinkPHP5这个PHP框架时,它就像是我探索路上的那颗最亮的星。今天,我想和大家分享我的ThinkPHP5框架开发22讲,这是我从一个初学者到逐渐熟练的实践过程。第1讲:初识ThinkPHP5记得那是一个阳光明媚的周末,我在网上浏览PHP框架的资料时,偶
开启 PHP 初阶之旅:解锁高效入门之道
API_Zevin
php 开发语言 人工智能 大数据 前端 python 后端
在当今动态网页开发领域,PHP作为一门久经沙场的服务器端脚本语言,以其强大功能与广泛适用性,持续吸引着无数初学者踏入编程殿堂。若你决心攻克PHP,为Web开发世界添砖加瓦,一系列精准策略与实用方法将成为你加速入门的得力伙伴,引领你穿越初期懵懂,迈向熟练驾驭的新征程。一、筑牢基础:语法地基稳扎稳打PHP语法虽具灵活性,初学者仍需系统研习,构建扎实根基。从变量声明起步,领会PHP变量“$”符号前缀特色
面试宝典
phpdi
1.引用变量考点引用变量定义:用不同的名字访问同一个变量内容cow机制遍历时的引用处理unset只会取消引用,不会销毁内存空间php中对象默认是引用传递,若需要复制,则需要使用clone2.常量及数据类型define,const;php5.6以用const定义常量不支持表达式;7种false情况:0,0.0,'','0',[],null,false;精度丢失;获取客户端,服务端ip;与app交互$
从0到1学PHP(一):PHP 基础入门:开启后端开发之旅
目录一、PHP简介与发展历程1.1PHP定义与特点1.2在后端开发中的地位1.3发展阶段及重要版本更新二、PHP开发环境搭建2.1Windows系统下搭建步骤2.2Mac系统下搭建方法及常用工具2.3适合初学者的集成开发环境三、第一个PHP程序3.1编写"HelloWorld"程序3.2程序基本结构和执行过程3.3PHP代码的嵌入方式(在HTML中)一、PHP简介与发展历程1.1PHP定义与特点P
Ubuntu lamp
会飞的灰大狼
linux ubuntu
Ubuntulamp前言在Ubuntu安装lamp架构我们了解到lamp是完整的架构我们前面了解到了集合了Linux系统apacheMySQL和PHP语言的完整架构我们前面说了Centos7中编译安装lamp那么我们去说一下在Ubuntu中安装安装apache2apt直接安装apache2apt-yinstallapache2启动apache2systemctlstartapache2#测
网络安全第14集
不灭锦鲤
web安全 安全
前言:小迪安全14集,这集重点内容:0、什么是js渗透测试?在javascript中也存在变量和函数,存在可控变量和函数就有可能存在在漏洞,js开发的web应用和php、java开发的区别是,js能看得到的源代码,php看不到,但是风险就是未授权访问、配置信息泄露(加密算法、key秘钥等),源代码看得到,存在更多的url泄露,从而可能会出现未授权访问,从url,前提:web应用可以采用前端语言或后
常见的Bug管理工具有哪些?(如JIRA、Bugzilla、禅道等)
海姐软件测试
缺陷管理 bug jira
一、主流Bug管理工具分类及特点1.商业/企业级工具JIRA(Atlassian)特点:高度可定制,支持敏捷开发,集成CI/CD(如Jenkins)、Confluence等。适用场景:中大型团队,需复杂工作流和扩展生态。费用:按用户数收费,提供云版和本地部署。MantisBT特点:开源但支持商业服务,轻量级,适合中小团队。亮点:支持邮件通知、自定义字段。部署:需自建服务器(PHP+MySQL)。T
TP5中CURD那点事儿(五)
铁匠简记
模型关联一般说来模型关系包括一对一HAS_ONEBELONG_TO一对多HAS_MANYBELONG_TO多对多BELONGS_TO_MANY一对多一用户->多条评论Model层User模型Comment模型对应两张表名User.php中创建一个publiccomm()方法publicfunctioncomm(){//这是一个关系模型return$this->hasMany('Comment','
开源TTS
vanloswang
综合 TTS
Ekhohttp://sourceforge.net/projects/e-guidedog/files/Ekho/http://www.eguidedog.net/ekho.phpflitehttp://www.speech.cs.cmu.edu/flite/
PHP框架详解 - symfony框架
FLK_9090
php symfony android
引言随着互联网技术的迅猛发展,Web应用程序的复杂性也在逐年增加。为了应对这种复杂性,开发者们需要更加高效、灵活的工具来简化开发流程、提高代码质量和维护性。在众多PHP框架中,Symfony凭借其模块化设计、高性能和丰富的文档支持,成为了众多开发者的首选。Symfony框架由法国公司SensioLabs开发并于2005年首次发布。它的设计哲学是为开发者提供一套高效且灵活的工具,帮助他们快速构建复杂
博后
来自吐槽星
德州TheUniversityofTexasMDAndersonCancerCenterhttps://bbs.pku.edu.cn/v2/post-read.php?bid=41&threadid=16325339纽约MemorialSloanKetteringCancerCenterhttp://www.miccai.org/jobs-posting/memorial-sloan-ketter
JetBrains 2025 全家桶 IDEA、WebStorm、DataSpell、DataGrip、Pycharm、CLion、Rider、PhpStorm、GoLand
原文地址:JetBrains2025全家桶11合1含IDEA、PyCharm、DataGrip、WebStrom、GoLand、CLion、PhpStorm、DataSpell等JetBrains2025全家桶11合1包含:IDEA、WebStorm、DataSpell、DataGrip、Pycharm、RustRover、CLion、Rider、PhpStorm、RubyMine、GoLand。
kh dksl.php,php中取得URL的根域名的代码
克勒kk
kh dksl.php
php中取得URL的根域名的代码发布于2014-12-1310:14:08|121次阅读|评论:0|来源:网友投递PHP开源脚本语言PHP(外文名:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。本文为大家讲解的是php
SMTPman,wp mail smtp轻松配置的连接指南
SMTPman,wpmailsmtp轻松配置的连接指南很多站长会遇到默认发信失败、邮件被当垃圾邮件等问题,此时SMTPman,wpmailsmtp提供了稳定、安全的SMTP解决方案。选择SMTPman,wpmailsmtp,你将获得更高的邮件投递率和管理效率,让网站通讯变得更可靠。功能优势使用SMTPman,wpmailsmtp可以显著提升邮件发送成功率,因为默认的PHP邮件函数经常会被邮箱服务器
SMTPman,php smtp发送邮件配置教程解析!
tomcsdn31
SMTP 邮件服务器 邮件营销 邮件群发 营销邮件 邮件接口 SMTP服务器
SMTPman,phpsmtp发送邮件配置教程解析!不论是用户注册验证,还是系统通知,SMTPman,phpsmtp发送邮件都能保证邮件稳定送达。选择SMTPman,phpsmtp发送邮件的方式,可以有效提高送达率,且SMTPman,phpsmtp发送邮件配置灵活,适合各种环境。配置参数要成功实现SMTPman,phpsmtp发送邮件,必须配置正确的服务器参数。SMTPman,phpsmtp发送邮
防伪溯源一体化管理系统解决方案
春城一个人的莎士比亚
网站小程序软件定制开发 防伪溯源 防伪溯源小程序 防伪溯源解决方案 防伪溯源方法 防伪溯源软件 防伪溯源一物一码
防伪溯源一体化管理系统一款基于FA+ThinkPHP和Uniapp进行开发的多平台(微信小程序、H5网页)溯源、防伪、管理一体化独立系统,拥有强大的防伪码和溯源码双码生成功能(内置多种生成规则)、批量大量导出防伪和溯源码码数据、支持代理商管理端(团队管理、采购,邀请代理商、出库等功能)、支持招商经理管理端(可管理代理商团队,邀请代理商,数据统计,采购订单统计),支持出厂员端(出库、入库)、文章资讯
宝塔开放php openssl,[教程]Centos宝塔面板升级openssl增强nginxSSL安全性,openssl开启Http/2,Centos升级openssl...
weixin_39956353
宝塔开放php openssl
由于本站是采用的Centos7+宝塔面板搭建的LNMP环境,但是Centos7默认的openssl版本又太低,根据“漏洞参考这里:https://www.trustasia.com/OpenSSL-CVE-2016-2107-Padding-Oracle”查看这篇文章发现openssl低版本已经有一堆漏洞了,所以就萌生了升级openssl版本的想法。配置完后如图:openssl版本低会导致无论你怎
探索PHP中的六边形架构:代码实践与设计哲学
脑叔
六边形架构 PHP 领域服务 依赖规则 UseCase对象
探索PHP中的六边形架构:代码实践与设计哲学背景简介本文基于书籍《AppendixA:HexagonalArchitecturewithPHP》的第43章内容,探讨了在PHP中实现六边形架构的实践方法和背后的设计哲学。六边形架构作为一种软件设计模式,旨在帮助开发者创建易于编写、测试和维护的应用程序。六边形架构的实践在软件开发中,业务规则与基础设施之间应该有清晰的分界。六边形架构通过端口和适配器的概
【全开源】防伪溯源一体化管理系统源码(FastAdmin+ThinkPHP和Uniapp)
现任明教教主~
uni-app 微信小程序
一款基于FastAdmin+ThinkPHP和Uniapp进行开发的多平台(微信小程序、H5网页)溯源、防伪、管理一体化独立系统,拥有强大的防伪码和溯源码双码生成功能(内置多种生成规则)、批量大量导出防伪和溯源码码数据、支持代理商管理端(团队管理、采购,邀请代理商、出库等功能)、支持招商经理管理端(可管理代理商团队,邀请代理商,数据统计,采购订单统计),支持出厂员端(出库、入库)、文章资讯、自定义
【PHP开发900个实用技巧】779.PHP应用分层:告别面条代码的“结构化思维”
精通代码大仙
PHP开发900个实用技巧 php android 开发语言 程序员创富
【颠覆你的代码习惯】779招PHP分层秘籍:从"意大利面条"到"千层蛋糕"的华丽蜕变——结构化思维让你代码清爽如风!779.PHP应用分层:告别面条代码的'结构化思维'表现层:直面用户的'门面担当'业务层:核心逻辑的'指挥官'数据访问层:数据库的'翻译官'工具层:重复劳动的'终结者'痛点分析:用户交互和业务纠缠?解决:剥离HTML模板引擎痛点分析:业务逻辑到处复制?解决:封装可复用的Service
【PHP开发900个实用技巧】767.模板方法模式(Template Method):PHP算法骨架定义的“行为蓝图”
精通代码大仙
PHP开发900个实用技巧 php 装饰器模式 android 程序员创富
一招破解"复制粘贴炼狱"!模板方法模式让你在PHP中定义算法骨架,代码复用率飙升200%——这才是优雅开发的核心密码!PHP模板方法模式行为蓝图设计1.是什么?算法骨架初体验重复代码困境模式定义解析2.怎么做?实现步骤解析抽象类搭建钩子方法妙用3.实战:框架应用案例Laravel示例支付流程设计4.陷阱警报过度继承灾难违反里氏替换5.高级进化论策略模式组合回调函数变体目录:是什么?算法骨架初体验怎
【PHP开发900个实用技巧】765.代理模式(Proxy):PHP控制对象访问的“智能门卫”
精通代码大仙
PHP开发900个实用技巧 php 装饰器模式 android 程序员创富
PHP访问控制的“智能管家”:揭秘代理模式如何让对象访问更安全、更高效本文深度剖析PHP代理模式的实战技巧,直击对象访问中的3大痛点,通过真实代码案例教你打造轻量级“访问门卫”,解决性能损耗、权限失控、代码臃肿难题。掌握这招,让你的PHP对象像VIP一样拥有专属管家!代理模式(Proxy)”智能门卫1.代理模式是什么2.为啥需要看门人?3.PHP实战三剑客4.典型场景避坑指南结构:代理器+本体访问
【最新版】防伪溯源一体化管理系统+uniapp前端+搭建教程
fakaifa
fakaifa精品源码 uni-app 前端 小程序 php crmeb 防伪溯源一体化 防伪溯源系统
一.介绍防伪溯源一体化管理系统基于ThinkPHP和Uniapp进行开发的多平台(微信小程序、H5网页)溯源、防伪、管理一体化独立系统,拥有强大的防伪码和溯源码双码生成功能(内置多种生成规则)、批量大量导出防伪和溯源码码数据、支持代理商管理端(团队管理、采购,邀请代理商、出库等功能)、支持招商经理管理端(可管理代理商团队,邀请代理商,数据统计,采购订单统计),支持出厂员端(出库、入库)、文章资讯、
【PHP开发900个实用技巧】766.命令模式(Command):PHP请求封装的“行为胶囊”
精通代码大仙
PHP开发900个实用技巧 php 装饰器模式 android 程序员创富
封请求为命令,藏万物于胶囊!行为解耦的艺术让PHP开发告别千行if-else的黑暗时代,构建可逆可扩展的弹性系统。命令模式:行为胶囊设计1.什么是行为胶囊?2.PHP四大组件解析3.实战解耦案例4.为何值得封装?5.经典应用场景目录:什么是行为胶囊?——把请求变成对象的神奇魔法PHP四大组件解析——Invoker/Command/Receiver/Client四角关系实战解耦案例——订单系统如何告
如何入门搭建Laravel框架(教程)
随着互联网的发展,web开发的需求日益增长。在web开发领域,php语言一直扮演着重要的角色,而laravel就是php语言下一个备受欢迎的web开发框架。在本文中,我们将介绍如何入门搭建laravel框架。一、Laravel介绍Laravel是一个开源的PHPWeb框架,由TaylorOtwell在2011年创建。Laravel框架是基于MVC模式构建的,它提供了一系列灵活的工具和组件,能够帮助
PHP框架之Laravel框架
Laravel框架详解Laravel,作为一款广受欢迎的PHPWeb开发框架,以其优雅、简洁的语法和强大的功能特性,赢得了全球众多开发者的青睐。下面,我们将从Laravel的特点、应用案例以及具体的框架使用等方面进行详细解析。一、Laravel框架的特点优雅的语法Laravel框架采用简洁、优雅的语法,使得开发者能够编写出易于阅读和维护的代码。例如,通过EloquentORM,开发者可以方便地进行
桌面上有多个球在同时运动,怎么实现球之间不交叉,即碰撞?
换个号韩国红果果
html 小球碰撞
稍微想了一下,然后解决了很多bug,最后终于把它实现了。其实原理很简单。在每改变一个小球的x y坐标后,遍历整个在dom树中的其他小球,看一下它们与当前小球的距离是否小于球半径的两倍?若小于说明下一次绘制该小球(设为a)前要把他的方向变为原来相反方向(与a要碰撞的小球设为b),即假如当前小球的距离小于球半径的两倍的话,马上改变当前小球方向。那么下一次绘制也是先绘制b,再绘制a,由于a的方向已经改变
《高性能HTML5》读后整理的Web性能优化内容
白糖_
html5
读后感
先说说《高性能HTML5》这本书的读后感吧,个人觉得这本书前两章跟书的标题完全搭不上关系,或者说只能算是讲解了“高性能”这三个字,HTML5完全不见踪影。个人觉得作者应该首先把HTML5的大菜拿出来讲一讲,再去分析性能优化的内容,这样才会有吸引力。因为只是在线试读,没有机会看后面的内容,所以不胡乱评价了。
[JShop]Spring MVC的RequestContextHolder使用误区
dinguangx
jeeshop 商城系统 jshop 电商系统
在spring mvc中,为了随时都能取到当前请求的request对象,可以通过RequestContextHolder的静态方法getRequestAttributes()获取Request相关的变量,如request, response等。 在jshop中,对RequestContextHolder的
算法之时间复杂度
周凡杨
java 算法 时间复杂度 效率
在
计算机科学 中,
算法 的时间复杂度是一个
函数 ,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的
字符串 的长度的函数。时间复杂度常用
大O符号 表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是
渐近 的,它考察当输入值大小趋近无穷时的情况。
这样用大写O()来体现算法时间复杂度的记法,
Java事务处理
g21121
java
一、什么是Java事务 通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状
Linux awk命令详解
510888780
linux
一. AWK 说明
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。
awk的处理文本和数据的方式:它逐行扫描文件,从第一行到
android permission
布衣凌宇
Permission
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" ></uses-permission>允许读写访问"properties"表在checkin数据库中,改值可以修改上传
<uses-permission android:na
Oracle和谷歌Java Android官司将推迟
aijuans
java oracle
北京时间 10 月 7 日,据国外媒体报道,Oracle 和谷歌之间一场等待已久的官司可能会推迟至 10 月 17 日以后进行,这场官司的内容是 Android 操作系统所谓的 Java 专利权之争。本案法官 William Alsup 称根据专利权专家 Florian Mueller 的预测,谷歌 Oracle 案很可能会被推迟。 该案中的第二波辩护被安排在 10 月 17 日出庭,从目前看来
linux shell 常用命令
antlove
linux shell command
grep [options] [regex] [files]
/var/root # grep -n "o" *
hello.c:1:/* This C source can be compiled with:
Java解析XML配置数据库连接(DOM技术连接 SAX技术连接)
百合不是茶
sax技术 Java解析xml文档 dom技术 XML配置数据库连接
XML配置数据库文件的连接其实是个很简单的问题,为什么到现在才写出来主要是昨天在网上看了别人写的,然后一直陷入其中,最后发现不能自拔 所以今天决定自己完成 ,,,,现将代码与思路贴出来供大家一起学习
XML配置数据库的连接主要技术点的博客;
JDBC编程 : JDBC连接数据库
DOM解析XML: DOM解析XML文件
SA
underscore.js 学习(二)
bijian1013
JavaScript underscore
Array Functions 所有数组函数对参数对象一样适用。1.first _.first(array, [n]) 别名: head, take 返回array的第一个元素,设置了参数n,就
plSql介绍
bijian1013
oracle 数据库 plsql
/*
* PL/SQL 程序设计学习笔记
* 学习plSql介绍.pdf
* 时间:2010-10-05
*/
--创建DEPT表
create table DEPT
(
DEPTNO NUMBER(10),
DNAME NVARCHAR2(255),
LOC NVARCHAR2(255)
)
delete dept;
select
【Nginx一】Nginx安装与总体介绍
bit1129
nginx
启动、停止、重新加载Nginx
nginx 启动Nginx服务器,不需要任何参数u
nginx -s stop 快速(强制)关系Nginx服务器
nginx -s quit 优雅的关闭Nginx服务器
nginx -s reload 重新加载Nginx服务器的配置文件
nginx -s reopen 重新打开Nginx日志文件
spring mvc开发中浏览器兼容的奇怪问题
bitray
jquery Ajax springMVC 浏览器 上传文件
最近个人开发一个小的OA项目,属于复习阶段.使用的技术主要是spring mvc作为前端框架,mybatis作为数据库持久化技术.前台使用jquery和一些jquery的插件.
在开发到中间阶段时候发现自己好像忽略了一个小问题,整个项目一直在firefox下测试,没有在IE下测试,不确定是否会出现兼容问题.由于jquer
Lua的io库函数列表
ronin47
lua io
1、io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述
io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr
2、文件句柄直接调用方式,即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄
多数I/O函数调用失败时返回nil加错误信息,有些函数成功时返回nil
java-26-左旋转字符串
bylijinnan
java
public class LeftRotateString {
/**
* Q 26 左旋转字符串
* 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
* 如把字符串abcdef左旋转2位得到字符串cdefab。
* 请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。
*/
pu
《vi中的替换艺术》-linux命令五分钟系列之十一
cfyme
linux命令
vi方面的内容不知道分类到哪里好,就放到《Linux命令五分钟系列》里吧!
今天编程,关于栈的一个小例子,其间我需要把”S.”替换为”S->”(替换不包括双引号)。
其实这个不难,不过我觉得应该总结一下vi里的替换技术了,以备以后查阅。
1
所有替换方案都要在冒号“:”状态下书写。
2
如果想将abc替换为xyz,那么就这样
:s/abc/xyz/
不过要特别
[轨道与计算]新的并行计算架构
comsci
并行计算
我在进行流程引擎循环反馈试验的过程中,发现一个有趣的事情。。。如果我们在流程图的每个节点中嵌入一个双向循环代码段,而整个流程中又充满着很多并行路由,每个并行路由中又包含着一些并行节点,那么当整个流程图开始循环反馈过程的时候,这个流程图的运行过程是否变成一个并行计算的架构呢?
重复执行某段代码
dai_lm
android
用handler就可以了
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
public void run() {
update();
handler.postDelayed(this, 5000);
}
};
开始计时
h
Java实现堆栈(list实现)
datageek
数据结构——堆栈
public interface IStack<T> {
//元素出栈,并返回出栈元素
public T pop();
//元素入栈
public void push(T element);
//获取栈顶元素
public T peek();
//判断栈是否为空
public boolean isEmpty
四大备份MySql数据库方法及可能遇到的问题
dcj3sjt126com
DB backup
一:通过备份王等软件进行备份前台进不去?
用备份王等软件进行备份是大多老站长的选择,这种方法方便快捷,只要上传备份软件到空间一步步操作就可以,但是许多刚接触备份王软件的客用户来说还原后会出现一个问题:因为新老空间数据库用户名和密码不统一,网站文件打包过来后因没有修改连接文件,还原数据库是好了,可是前台会提示数据库连接错误,网站从而出现打不开的情况。
解决方法:学会修改网站配置文件,大多是由co
github做webhooks:[1]钩子触发是否成功测试
dcj3sjt126com
github git webhook
转自: http://jingyan.baidu.com/article/5d6edee228c88899ebdeec47.html
github和svn一样有钩子的功能,而且更加强大。例如我做的是最常见的push操作触发的钩子操作,则每次更新之后的钩子操作记录都会在github的控制板可以看到!
工具/原料
github
方法/步骤
">的作用" target="_blank">JSP中 的作用
蕃薯耀
JSP中<base href="<%=basePath%>">的作用
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
linux下SAMBA服务安装与配置
hanqunfeng
linux
局域网使用的文件共享服务。
一.安装包:
rpm -qa | grep samba
samba-3.6.9-151.el6.x86_64
samba-common-3.6.9-151.el6.x86_64
samba-winbind-3.6.9-151.el6.x86_64
samba-client-3.6.9-151.el6.x86_64
samba-winbind-clients
guava cache
IXHONG
cache
缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。
缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当我们发现我们的系统这个数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的
Query的开始--全局变量,noconflict和兼容各种js的初始化方法
kvhur
JavaScript jquery css
这个是整个jQuery代码的开始,里面包含了对不同环境的js进行的处理,例如普通环境,Nodejs,和requiredJs的处理方法。 还有jQuery生成$, jQuery全局变量的代码和noConflict代码详解 完整资源:
http://www.gbtags.com/gb/share/5640.htm jQuery 源码:
(
美国人的福利和中国人的储蓄
nannan408
今天看了篇文章,震动很大,说的是美国的福利。
美国医院的无偿入院真的是个好措施。小小的改善,对于社会是大大的信心。小孩,税费等,政府不收反补,真的体现了人文主义。
美国这么高的社会保障会不会使人变懒?答案是否定的。正因为政府解决了后顾之忧,人们才得以倾尽精力去做一些有创造力,更造福社会的事情,这竟成了美国社会思想、人
N阶行列式计算(JAVA)
qiuwanchi
N阶行列式计算
package gaodai;
import java.util.List;
/**
* N阶行列式计算
* @author 邱万迟
*
*/
public class DeterminantCalculation {
public DeterminantCalculation(List<List<Double>> determina
C语言算法之打渔晒网问题
qiufeihu
c 算法
如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网,编程实现当输入2011年1月1日以后任意一天,输出该渔夫是在打渔还是在晒网。
代码如下:
#include <stdio.h>
int leap(int a) /*自定义函数leap()用来指定输入的年份是否为闰年*/
{
if((a%4 == 0 && a%100 != 0
XML中DOCTYPE字段的解析
wyzuomumu
xml
DTD声明始终以!DOCTYPE开头,空一格后跟着文档根元素的名称,如果是内部DTD,则再空一格出现[],在中括号中是文档类型定义的内容. 而对于外部DTD,则又分为私有DTD与公共DTD,私有DTD使用SYSTEM表示,接着是外部DTD的URL. 而公共DTD则使用PUBLIC,接着是DTD公共名称,接着是DTD的URL.
私有DTD
<!DOCTYPErootSYST