1. 일반적인 프로토콜 이해:
FTP(파일 전송 프로토콜): 원격 파일 전송 프로토콜로, 사용자가 원격 호스트에 있는 파일을 자신의 컴퓨터로 복사할 수 있습니다.
SMTP(Simple Mail Transfer Protocol): 이메일 전송에 사용되는 Simple Postal Transfer Protocol.
NFS(네트워크 파일 서버): 여러 컴퓨터가 서로의 디렉토리에 투명하게 액세스할 수 있도록 하는 네트워크 파일 서버입니다.
HTTP 하이퍼텍스트 전송 프로토콜:
HTTP는 애플리케이션 계층에 속하는 객체 지향 프로토콜로, 간단하고 빠른 방식으로 인해 분산 하이퍼미디어 정보 시스템에 적합합니다. 1990년에 제안되었으며 수년간의 사용과 개발을 거쳐 지속적으로 개선되고 확장되었습니다. 현재 WWW에서는 HTTP/1.0의 6번째 버전이 사용되고 있으며, HTTP/1.1의 표준화 작업이 진행 중이다.
HTTP 프로토콜의 주요 특징은 다음과 같이 요약할 수 있다.
1. 클라이언트/서버 지원 방법.
2. 간단하고 빠릅니다. 클라이언트가 서버에 서비스를 요청할 때 요청 방법과 경로만 전송하면 됩니다. 일반적으로 사용되는 요청 방법은 GET, HEAD 및 POST입니다. 각 방법은 클라이언트와 서버 간의 다양한 연결 유형을 지정합니다.
HTTP 프로토콜의 단순성으로 인해 HTTP 서버의 프로그램 크기는 작고 통신 속도는 매우 빠릅니다.
3. 유연성: HTTP는 모든 유형의 데이터 개체 전송을 허용합니다. 전송되는 유형은 Content-Type으로 표시됩니다.
4. 연결 없음: 연결 없음의 의미는 각 연결이 하나의 요청만 처리하도록 제한하는 것입니다. 서버는 클라이언트의 요청을 처리하고 클라이언트의 응답을 받은 후 연결을 끊습니다. 이 방법을 사용하면 전송 시간이 절약됩니다.
5. 상태 비저장: HTTP 프로토콜은 상태 비저장 프로토콜입니다. Stateless는 프로토콜에 트랜잭션 처리를 위한 메모리 기능이 없음을 의미합니다. 상태가 없다는 것은 후속 처리에 이전 정보가 필요한 경우 다시 전송해야 하므로 연결당 전송되는 데이터 양이 증가할 수 있음을 의미합니다. 반면에 서버는 이전 정보가 필요하지 않을 때 더 빠르게 응답합니다.
2. xml 이해:
1998년 2월 XML(Extensible Markup Language)이 소프트웨어 업계에 도입되었을 때 업계 전체에 돌풍을 일으켰습니다. 처음으로 세계는 웹뿐 아니라 모든 곳에서 문서와 데이터를 구성할 수 있는 보편적이고 적응 가능한 형식을 갖게 되었습니다.
XML은 확장 가능한 마크업 언어를 의미합니다.
HTML은 하이퍼텍스트 마크업 언어를 의미합니다.
php는 하이퍼텍스트 전처리 언어를 말합니다.
xml은 다양한 플랫폼과 언어 간의 통신 브리지를 제공합니다.
xml은 기본적으로 데이터의 구조를 설명하는 데 사용됩니다.
xml의 기본 구문:
xml에는 엄격한 문법 규칙이 있습니다.
xml을 먼저 선언해야 합니다.
xml은 루트 요소를 만들어야 합니다.
xml의 모든 요소는 쌍으로 나타나야 합니다.
xml은 대소문자를 구분합니다
xml 요소의 중첩이 정확해야 합니다
xml 요소의 속성은 "" 포함을 사용해야 합니다.
XML 문서는 자체 설명적이고 간단한 구문을 사용합니다. XML 문서에는 선언, 처리 지침(선택 사항) 및 요소가 포함됩니다. 다음은 간단한
설명:
문서 선언
xml 태그는 해당 파일이 xml 문서임을 나타냅니다. 마지막 두 속성 값은 해당 버전 번호와 인코딩 표준을 나타냅니다. 독립 실행형의 '예'는 파일이 다른 외부 XML 파일을 참조하지 않음을 나타냅니다.
3. xml 관련 웹 서비스.
Xml 웹 서비스는 인터넷상의 분산 컴퓨팅을 위한 기본 구성 요소입니다. 개방형 표준과 사용자와 응용 프로그램 간의 통신 및 공동 작업에 중점을 두면서 XML Web Services가 응용 프로그램 통합을 위한 플랫폼이 되는 환경이 조성되었습니다.
xML 웹 서비스는 인터페이스를 매우 자세하게 지정할 수 있으므로 사용자는 클라이언트 애플리케이션을 생성하여 통신할 수 있습니다.
xML 웹 서비스는 표준 웹 프로토콜을 통해 웹 사용자에게 유용한 기능을 제공합니다. 대부분의 경우 SOAP 프로토콜이 사용됩니다.
soap은 XML Web Service의 통신 프로토콜입니다.
4. xml html xhtml dhtml의 차이점:
XML과 HTML의 디자인 차이점은 다음과 같습니다.
XML은 데이터 자체에 중점을 두고 데이터를 저장하는 데 사용됩니다.
HTML은 데이터의 표시 모드에 중점을 두고 데이터를 정의하는 데 사용됩니다.
XHTML(The Extensible HyperText Markup Language)은 실제로 HTML의 업그레이드 버전입니다. 이 버전의 목적은 사람들이 XML을 더 쉽게 받아들이도록 하는 것입니다. 왜냐하면 XML은 웹 개발의 미래 방향이기 때문입니다. 본질적으로 XHTML은 XML의 일부 강력한 기능과 대부분의 간단한 기능을 결합한 과도기적 기술입니다. HTML.
DHTML: 정확히 말하면 DHTML은 웹페이지를 만들기 위한 개념일 뿐입니다. 실제로 소위 DHTML 표준이나 기술 사양을 발표한 조직이나 기관은 없습니다. DHTML은 기술, 표준 또는 사양이 아닙니다. DHTML은 기존 웹 페이지 기술과 언어 표준을 통합하고 적용하여 다운로드 후 페이지 요소의 효과를 실시간으로 변경할 수 있는 웹 페이지를 만드는 디자인 개념일 뿐입니다. DHTML은 원천 기술을 기반으로 하며 세 가지 측면으로 나눌 수 있습니다.
첫 번째는 HTML로, 이는 페이지 내 다양한 페이지 요소 개체로 동적으로 조작되는 콘텐츠입니다.
두 번째는 CSS, CSS 속성입니다.
세 번째는 웹 페이지의 HTML과 CSS를 실제로 조작하는 클라이언트측 스크립트(예: JavaScript)입니다.
웹 디자이너는 DHTML 기술을 사용하여 사용자와 상호 작용하고 동적 콘텐츠를 포함할 수 있는 페이지를 만들 수 있습니다. 실제로 DHTML을 사용하면 웹 디자이너는 페이지가 로드된 후에도 웹 페이지의 모든 요소를 동적으로 조작할 수 있습니다. DHTML을 사용하여 웹 디자이너는 콘텐츠를 동적으로 숨기거나 표시하고, 스타일 정의를 수정하고, 요소를 활성화하고, 요소를 배치할 수 있습니다. 또한 DHTML을 사용하면 웹 디자이너는 파일 및 데이터베이스와 같은 외부 데이터 소스에 요소를 바인딩하여 웹 페이지에 외부 정보를 표시할 수 있습니다. 이러한 모든 기능은 웹 서버를 요청하거나 웹 페이지를 다시 로드하지 않고도 브라우저를 사용하여 완료할 수 있습니다.모든 기능이 HTML 파일에 포함되어 있기 때문인데, 웹페이지 요청과 함께 브라우저에 한번에 다운로드됩니다.
5. DOM 연산 xml
Dom 노드에서 데이터 읽기
header("content-type: text/html; charset=utf-8");
//dom 노드 XML 파일 읽기
$dom = new DomDocument(); //DOM 객체 생성
$dom->load('1.xml') //XML 파일 읽기
$root = $ dom- >documentElement; //XML 데이터의 루트 가져오기
$nodes=$root->childNodes; //XML 루트 개체 아래의 모든 하위 노드 개체 가져오기
echo $nodes->item(1 ) ->nodeValue; //출력 이름
echo $nodes->item(3)->nodeValue; //비밀번호 출력
echo $nodes->item(5)->nodeValue; /출력 성별
echo $nodes->item(7)->nodeValue; //출력 연령
//속성 가져오기
echo $dom->getElementsByTagName('name')-> ; item(0)->attributes->getNamedItem('abc')->nodeValue;
echo $nodes->item(1)->attributes->getNamedItem('id')- > ;nodeValue;
readXml($root); //노드 함수를 읽는 루프를 실행하고 루트 노드 객체를 전달합니다.
function readXml($nodes){
if($nodes->hasChildNodes()) { // 하위 노드가 있는지 확인
‐ ' ' s ' s ' s ' s ~ t 's ' t ' t ‐ ‐ ‐ ‐ 목록을 반복합니다. 자식 노드
if($node->nodeType == XML_ELEMENT_NODE){ //노드 객체인지 확인
readXml($node);//readXml() 함수를 재귀적으로 실행
} elseif ($ node-& gt; nodeType == xml_text_node) {// 파일 노드인지 확인
echo $ node- & gt; // 여기에 비즈니스 로직이 있으면 코드를 작성하세요
} >
?>
//dom에서 xml 문서 생성
$doc=new DOMDocument('1.0');
//순서대로 노드 객체 생성 및 추가
$root=$doc->appendChild($doc->createElement('school')); //루트 디렉터리 생성 및 추가
//하위 노드 생성
$class1=$root-> ;appendChild ($doc->createElement('class1'));
//클래스 아래에 하위 노드 생성
$stu=$class1->appendChild($doc->createElement('stu' )) ;
//stu
$stu->appendChild($doc->createTextNode('1Class'));
$stu->setAttribute('number'에 대한 속성 및 텍스트 생성 , '10');
$stu->setAttribute('zhuanye','java');
/**
* 위 코드는 xml 형식을 생성합니다
*/
//하위 노드 생성
$class2= $ root->appendChild($doc->createElement('class2'));
//클래스 아래에 하위 노드 생성
$stu2=$class2->appendChild($doc->createElement ( 'stu'));
//stu에 대한 속성 및 텍스트 생성
$stu2->appendChild($doc->createTextNode('Class 1'));
$stu2-> setAttribute('number','20');
$stu2->setAttribute('zhuanye','php');
//생성
$doc->formatOutput=true;
$xmlDoc=$doc->saveXML(); //xml을 생성하고 xml 문서를 반환합니다
$doc->save('school.xml');
/**
위 코드로 생성된 최종 결과:
*/
6. simplexml 인터페이스
header("content-type: text/html; charset=utf-8");
$xml=simplexml_load_file('school.xml');//배열 객체 반환
// 데이터 및 속성 읽기
Foreach ($ xml as $ key = & gt; $ node) {
if ($ key == 'class1') {
echo $ node- & gt; stu; //객체의 텍스트 노드에 직접 액세스 //출력 결과: Class 1
}elseif($key== 'class2'){
출력 결과 액세스: 20
}
}
//속성에 직접 접근
echo $xml->class1->stu['zhuanye'] //출력 결과: java
/**
학교>
*/
Get xml을 원격으로 복사하여 저장
header("content-type: text/html; charset=utf-8");
/ /xml 파일에 대한 원격 액세스
$xml= simplexml_load_file('http://127.0.0.1/xml/2.xml');
$xml->asXML('5.xml'); //로컬에 저장
//에 따라 XML 문서를 작동합니다. 비즈니스 로직에
?>
7.
데이터베이스 데이터에서 xml 문서 생성
/**
**/
$c>mysql_select_db('member');
mysql_set_charset("utf8");
//데이터 제출
if(isset($_POST['zhuce'])){
$username= Trim($_POST['username']);
$userpwd=trim($_POST['userpwd']);
$useremail=trim($_POST['useremail']);
// 데이터베이스에 쓰기
$sql="insert reg(`id`,`name`,`pwd`,`email`) 값(null,'$username','$userpwd','$useremail')" ;
$res= mysql_query($sql );
if($res){
$sql="reg에서 * 선택";
$rest=mysql_query( $ sql);
//判断是否有数据
if( !empty($users)){
$xmlString=createXml('users',$users);
$xmlObj=new SimpleXMLElement($xmlString) ; //생성xml对象
$xmlObj->asXML("reg.xml"); //保存
}
}
//创建xml
function createXml($boot,$data){
$xml="<$boot>n";
foreach ($data as $key=>$value){
if(is_string($key)){
$xml.="<$key>";
foreach($value as $k =>$val){
$xml.="n<$k>".$val."$k>";
}
$xml.="n& lt;/$ key>n";
}else{
$xml.="<$boot.$key>";
foreach($value as $k=>$val){
$ xml.="n<$k>".$val."$k>";
}
$xml.="n$boot.$key>n";
}
}
$xml.="$boot>";
return $xml;
}
?>
远程获取对象:
$xml=simplexml_load_file('http://127.0. 0.1/xml/reg.xml');
//$memberXml=$xml->asXML('member.xml');
?>
id | name ; 비밀번호 | 이메일||
---|---|---|---|
id;?> | name?> | pwd;?> | < ;?php echo $node->email;?> |
';<br> / /var_dump($xml);<br> $arrobj=$xml->channel->image;<br> //echo $arrobj->url;<br> // print_r($xml->channel );<br> echo '';
위 내용은 PHP에서 XML의 동작을 소개한 것입니다. XML은 웹서버, 일기예보, 객체지향 컨텐츠 등 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.