<?php
//选择执行的函数
$operate=$_POST["operate"];
//获取html
$htmlStr=$_POST["htmlStr"];
//获取id属性
$id=$_POST["id"];
$json["operate"]=$operate;
switch($operate){
case "init":
$json["htmlStr"]= init($htmlStr,$id);
break;
case "addDataset":
$json["htmlStr"]= faddDataset($htmlStr,$id);
break;
case "addSource":
$json["htmlStr"]= faddSource($htmlStr,$id);
break;
case "addOption":
$json["htmlStr"]= faddOption($htmlStr,$id);
break;
case "addFocuses":
$json["htmlStr"]= faddFocuses($htmlStr,$id);
break;
case "addFocus":
$json["htmlStr"]= faddFocus($htmlStr,$id);
break;
case "addConditions":
$json["htmlStr"]= faddConditions($htmlStr,$id);
break;
case "addCondition":
$json["htmlStr"]= faddCondition($htmlStr,$id);
break;
case "addFunc":
$json["htmlStr"]= faddFunc($htmlStr,$id);
break;
case "addGroup":
$json["htmlStr"]= faddGroup($htmlStr,$id);
break;
case "addHaving":
$json["htmlStr"]= faddHaving($htmlStr,$id);
break;
case "addOrder":
$json["htmlStr"]= faddOrder($htmlStr,$id);
break;
case "addLimit":
$json["htmlStr"]= faddLimit($htmlStr,$id);
break;
case "addJoin_source":
$json["htmlStr"]= faddJoin_source($htmlStr,$id);
break;
case "addResult":
$json["htmlStr"]= faddResult($htmlStr,$id);
break;
case "addTemplate":
$json["htmlStr"]= faddTemplate($htmlStr,$id);
break;
default:
return ;
}
echo json_encode($json);
function init($htmlStr,$id){
$htmlStr=$htmlStr."<label style=\"margin-right:20px;\" class=\"semanticsLabel\">属性:</label>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">id:</label>"
."<div id=\"semantics_id\"></div>"
."<div><label style=\"margin-right:20px;\" class=\"semanticsLabel\">子标签:</label>"
."<span id='addDataset'></span><span id='addOption'></span><span id='addResult'></span></div>"
."<div style='margin-left:30px;margin-top:10px;'><div id='semantics_sub'></div></div>";
return $htmlStr;
}
function faddDataset($htmlStr,$id){
$htmlStr=$htmlStr."<div><label style=\"margin-right:20px;\" class=\"semanticsLabel\">子标签:</label>"
."<span id='".$id."_addSource'></span><span id='".$id."_addJoin-Source'></span></div>"
."<div style='margin-left:30px;margin-top:10px;'><div id='".$id."_sub'></div></div>";
return $htmlStr;
}
function faddSource($htmlStr,$id){
$htmlStr=$htmlStr."<label style=\"margin-right:20px;\" class=\"semanticsLabel\">属性:</label>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">level:</label>"
."<div id='".$id."_level'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">aliases:</label>"
."<div id='".$id."_aliases'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">input:</label>"
."<div id='".$id."_input'></div>";
return $htmlStr;
}
function faddOption($htmlStr,$id){
$htmlStr=$htmlStr."<label style=\"margin-right:20px;\" class=\"semanticsLabel\">属性:</label>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">name:</label>"
."<div id='".$id."_name'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">type:</label>"
."<div id='".$id."_type'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">source:</label>"
."<div id='".$id."_source'></div>"
."<div><label style=\"margin-right:20px;\" class=\"semanticsLabel\">子标签:</label>"
."<span id='".$id."_addFocuses'></span><span id='".$id."_addConditions'></span><span id='".$id."_addGroup'></span><span id='".$id."_addHaving'></span><span id='".$id."_addOrder'></span><span id='".$id."_addLimit'></span></div>"
."<div style='margin-left:30px;margin-top:10px;'><div id='".$id."_sub'></div></div>";
return $htmlStr;
}
function faddFocuses($htmlStr,$id){
$htmlStr=$htmlStr."<div><label style=\"margin-right:20px;\" class=\"semanticsLabel\">子标签:</label>"
."<span id='".$id."_addFocus'></span></div>"
."<div style='margin-left:30px;margin-top:10px;'><div id='".$id."_sub'></div></div>";
return $htmlStr;
}
function faddFocus($htmlStr,$id){
$htmlStr=$htmlStr."<label style=\"margin-right:20px;\" class=\"semanticsLabel\">属性:</label>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">name:</label>"
."<div id='".$id."_name'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">aliases:</label>"
."<div id='".$id."_aliases'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">input:</label>"
."<div id='".$id."_input'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">extend:</label>"
."<div id='".$id."_extend'></div>"
."<div><label style=\"margin-right:20px;\" class=\"semanticsLabel\">子标签:</label>"
."<span id='".$id."_addFunc'></span>"
."<div style='margin-left:30px;margin-top:10px;'><div id='".$id."_sub'></div></div>";
return $htmlStr;
}
function faddConditions($htmlStr,$id){
$htmlStr=$htmlStr."<label style=\"margin-right:20px;\" class=\"semanticsLabel\">属性:</label>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">relation:</label>"
."<div id='".$id."_relation'></div>"
."<div><label style=\"margin-right:20px;\" class=\"semanticsLabel\">子标签:</label>"
."<span id='".$id."_addConditions'></span>"
."<span id='".$id."_addCondition'></span></div>"
."<div style='margin-left:30px;margin-top:10px;'><div id='".$id."_sub'></div></div>";
return $htmlStr;
}
function faddCondition($htmlStr,$id){
$htmlStr=$htmlStr."<label style=\"margin-right:20px;\" class=\"semanticsLabel\">属性:</label>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">operators:</label>"
."<div id='".$id."_operators'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">name:</label>"
."<div id='".$id."_name'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">input:</label>"
."<div id='".$id."_input'></div>"
."<div><label style=\"margin-right:20px;\" class=\"semanticsLabel\">子标签:</label>"
."<span id='".$id."_addFunc'></span>"
."<div style='margin-left:30px;margin-top:10px;'><div id='".$id."_sub'></div></div>";
return $htmlStr;
}
function faddFunc($htmlStr,$id){
$htmlStr=$htmlStr."<label style=\"margin-right:20px;\" class=\"semanticsLabel\">属性:</label>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">id:</label>"
."<div id='".$id."_id'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">name:</label>"
."<div id='".$id."_name'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">input:</label>"
."<div id='".$id."_input'></div>";
return $htmlStr;
}
function faddGroup($htmlStr,$id){
$htmlStr=$htmlStr."<div><label style=\"margin-right:20px;\" class=\"semanticsLabel\">子标签:</label>"
."<span id='".$id."_addFocuses'></span>"
."<div style='margin-left:30px;margin-top:10px;'><div id='".$id."_sub'></div></div>";
return $htmlStr;
}
function faddHaving($htmlStr,$id){
$htmlStr=$htmlStr."<div><label style=\"margin-right:20px;\" class=\"semanticsLabel\">子标签:</label>"
."<span id='".$id."_addConditions'></span>"
."<div style='margin-left:30px;margin-top:10px;'><div id='".$id."_sub'></div></div>";
return $htmlStr;
}
function faddOrder($htmlStr,$id){
$htmlStr=$htmlStr."<div><label style=\"margin-right:20px;\" class=\"semanticsLabel\">子标签:</label>"
."<span id='".$id."_addFocuses'></span>"
."<div style='margin-left:30px;margin-top:10px;'><div id='".$id."_sub'></div></div>";
return $htmlStr;
}
function faddLimit($htmlStr,$id){
$htmlStr=$htmlStr."<label style=\"margin-right:20px;\" class=\"semanticsLabel\">属性:</label>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">offset:</label>"
."<div id='".$id."_offset'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">rows:</label>"
."<div id='".$id."_rows'></div>";
return $htmlStr;
}
function faddJoin_source($htmlStr,$id){
$htmlStr=$htmlStr."<label style=\"margin-right:20px;\" class=\"semanticsLabel\">属性:</label>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">join:</label>"
."<div id='".$id."_join'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">aliases:</label>"
."<div id='".$id."_aliases'></div>"
."<div><label style=\"margin-right:20px;\" class=\"semanticsLabel\">子标签:</label>"
."<span id='".$id."_addSource'></span>"
."<span id='".$id."_addConditions'></span>"
."<div style='margin-left:30px;margin-top:10px;'><div id='".$id."_sub'></div></div>";
return $htmlStr;
}
function faddResult($htmlStr,$id){
$htmlStr=$htmlStr."<label style=\"margin-right:20px;\" class=\"semanticsLabel\">属性:</label>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">parser:</label>"
."<div id='".$id."_parser'></div>"
."<div><label style=\"margin-right:20px;\" class=\"semanticsLabel\">子标签:</label>"
."<span id='".$id."_addTemplate'></span>"
."<div style='margin-left:30px;margin-top:10px;'><div id='".$id."_sub'></div></div>";
return $htmlStr;
}
function faddTemplate($htmlStr,$id){
$htmlStr=$htmlStr."<div style='float:left'><label style=\"margin-right:20px;\" class=\"semanticsLabel\">属性:</label>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">engine:</label>"
."<div id='".$id."_engine'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">model:</label>"
."<div id='".$id."_model'></div>"
."<label style=\"margin-right:10px;\" class=\"semanticsLabel\">textValue:</label></div>"
."<div style='float:left'><textarea id='".$id."_textValue' style=\"width:300px; height:60px;\"></textarea></div>";
return $htmlStr;
}
js请求到php:
$.ajax({
type : "post",
url : "compute.php",
async:false,
data:{
htmlStr:htmlStr,
operate:"init",
id:""
},
dataType:"json",
success : function(data){
htmlStr=data.htmlStr;
},
error: function(d,e){
alert(e);
}
});
$_POST是一个数组对象,在php文件中是全局变量,是post方法。若提交方法为get则数据保存在$_GET数组中。
php中变量是不用提前定义声明的,这个和js不一样。
php的返回数据使用echo 数据的。
php文件中可以直接写html,但是文件后缀名必须为php,其实php和jsp是一抹一样的,php中的代码是php代码,之前要加<?php php代码 ?>。而jsp为<% java代码 %>
js之间的字符串拼接是用"+",而php是用"."
php 禁止显示php警告提示: error_reporting(0);
php 中对象用A->a,不是像js的A.a
/////////////////////////打印调试
var_dump() 能打印出类型
print_r() 只能打出值
echo() 是正常输出...
需要精确调试的时候用 var_dump();
一般查看的时候用 print_r()
另外 , echo不能显示数组 其余2个可以...
print_r() 只能打出值
echo() 是正常输出...
需要精确调试的时候用 var_dump();
一般查看的时候用 print_r()
另外 , echo不能显示数组 其余2个可以...
PHP 整数
整数是没有小数的数字。
整数规则:
- 整数必须有至少一个数字(0-9)
- 整数不能包含逗号或空格
- 整数不能有小数点
- 整数正负均可
- 可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)
在下面的例子中,我们将测试不同的数字。PHP var_dump() 会返回变量的数据类型和值:
实例
<?php $x = 5985; var_dump($x); echo "<br>"; $x = -345; // 负数 var_dump($x); echo "<br>"; $x = 0x8C; // 十六进制数 var_dump($x); echo "<br>"; $x = 047; // 八进制数 var_dump($x); ?>
PHP 浮点数
浮点数是有小数点或指数形式的数字。
在下面的例子中,我们将测试不同的数字。PHP var_dump() 会返回变量的数据类型和值:
实例
<?php $x = 10.365; var_dump($x); echo "<br>"; $x = 2.4e3; var_dump($x); echo "<br>"; $x = 8E-5; var_dump($x); ?>
PHP 逻辑
逻辑是 true 或 false。
$x=true; $y=false;
逻辑常用于条件测试。您将在本教程稍后的章节学到更多有关条件测试的知识。
PHP 数组 没有new关键字
数组在一个变量中存储多个值。
在下面的例子中,我们将测试不同的数组。PHP var_dump() 会返回变量的数据类型和值:
实例
<?php $cars=array("Volvo","BMW","SAAB"); var_dump($cars); ?>
您将在本教程稍后的章节学到更多有关数组的知识。
PHP 对象 和java的class对象一样,只是这里多了$,“.”改为了“->”,有new关键字
对象是存储数据和有关如何处理数据的信息的数据类型。
在 PHP 中,必须明确地声明对象。
首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。
然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型:
实例
<?php class Car { var $color; function Car($color="green") { $this->color = $color; } function what_color() { return $this->color; } } ?>
您将在本教程稍后的章节学到更多有关对象的知识。
PHP NULL 值
特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。
NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。
可以通过把值设置为 NULL,将变量清空:
实例
<?php $x="Hello world!"; $x=null; var_dump($x); ?>
拆分数组
PHP数组添加一个元素的方式: push(),
-
$arr
= array(); -
array_push($arr,
el1, el2 ... eln);
但其实有一种更直接方便的做法:
-
$arr
= array(); -
$arr[]
= el1; -
$arr[]
= el2; -
...
-
$arr[]
= eln;
而且有实验证明,第二种方法的效率比第一种方法高出将近一倍!
我们来看下面的例子:
-
$t
= microtime(true); -
$array
= array(); -
for($i
= 0; $i < 10000; $i++) { -
$array[] = $i; -
}
-
print
microtime(true) - $t; -
print
'<br>'; -
$t
= microtime(true); -
$array
= array(); -
for($i
= 0; $i < 10000; $i++) { -
array_push($array, $i); -
}
-
print
microtime(true) - $t;
运行脚本,结果为:
0.0054171085357666 // array_push
0.0028800964355469 // array[]
Run 2
0.0054559707641602 // array_push
0.002892017364502 // array[]
Run 3
0.0055501461029053 // array_push
0.0028610229492188 // array[]
其他方法:
1.在数组末尾添加一个或多个元素。
array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。
php代码实例:
<?php
$arr1 = array("a", "b");
array_push($arr1, "c", "d");
print_r($arr1);
?>
运行结果:
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
注:如果第一个参数不是数组,array_push() 将发出一条警告。
2.删除数组末尾的一个元素。
array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。如果 array 为空(或者不是数组)将返回 NULL。
php代码实例:
<?php
$arr1 = array("a", "b","c","d");
array_pop($arr1);
print_r($arr1);
?>
运行结果:
Array
(
[0] => a
[1] => b
[2] => c
)
3.在数组的开始添加一个或多个元素。
array_unshift() 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。
php代码实例:
<?php
$arr1 = array("c","d");
array_unshift($arr1,"a","b");
print_r($arr1);
?>
运行结果:
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
4.删除数组第一个元素。
array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。如果 array 为空(或者不是数组),则返回 NULL。
php代码实例:
<?php
$arr1 = array("a","b","c","d");
echo (array_shift($arr1));
print_r($arr1);
?>
运行结果:
a
Array
(
[0] => b
[1] => c
[2] => d
)
<?php
//文件读取
$myfile=fopen("text.dtd","r");
$str="";
while(!feof($myfile)) {
$str=$str.fgets($myfile);
}
//$str=fread($myfile,filesize("text.dtd"));
fclose($myfile);
$json["str"]=$str;
//php中类对象的调用
class Person{
var $name;
function Person($name){
$this->name=$name;
}
function getName(){
return $this->name;
}
}
$person=new Person("shao");
$json["name"]=$person->getName();
//php中数组对象 没有new关键字
$cars=array();
array_push($cars,"PHP开发典型模块大全","PHP网络编程自学手册");
//打印数组---也会进入到ajax 的success方法中的data数据中。
var_dump($cars);
$json["type"]=$cars[0];
//得到数组的长度
$json["length"]=count($cars);
echo json_encode($json);
?>