Thư viện tệp php

  • Thư viện wordpress, đây là nơi tải lên (upload) và lưu trữ file. hình ảnh, video, âm thanh, doc, pdf,
  • Nội dung các tập tin này được sử dụng cho bài viết, trang,
  • Ở màn hình Quản trị viên, khi nhấp vào mục Thư viện

Thư viện tệp php

Thư viện tệp php

  • (1) Bấm để tải tệp lên
  • (2) Xem file dạng lưới hoặc danh sách
  • (3) Bộ lọc theo định dạng tệp hoặc theo ngày tải lên
  • (4) Chọn nhiều tệp để xử lý cùng lúc, ví dụ: xóa cùng lúc
  • (5) Tìm kiếm tệp đã tải lên

chỉnh sửa thông tin tệp tin đã tải lên

  • Sau khi tệp đã tải lên, ta có thể chỉnh sửa, xem thông tin, thêm nội dung cho tệp, bằng cách nhấp vào tệp cần chỉnh sửa, khi đó sẽ xuất hiện nội dung đã chỉnh sửa như bên dưới

Thư viện tệp php

  • Văn bản thay thế - khi hình ảnh vì một lý do nào đó không hiển thị, thì văn bản này sẽ thay thế cho hình ảnh
  • Tiêu đề - Đây là tiêu đề cho tệp, tệp có thể sử dụng tiêu đề hoặc không, ví dụ được sử dụng trong trình diễn ảnh
  • Chú thích - Nội dung chú thích cho tệp
  • function __construct(){
    
    }
    
    function __destruct() {
    $this->dbConnect->close();
    }
    
    function connectDB(){
    $this->dbConnect = new mysqli(‘localhost’, ‘root’, ‘mysql’, ‘xxx’);
    if($this->dbConnect->connect_errno){
    return null; 
    }else{
    return $this->dbConnect;
    }
    }
    
    0 - Mô tả cho tệp, nội dung này có thể hiển thị hoặc không, ví dụ được sử dụng trong trình diễn ảnh
  • function __construct(){
    
    }
    
    function __destruct() {
    $this->dbConnect->close();
    }
    
    function connectDB(){
    $this->dbConnect = new mysqli(‘localhost’, ‘root’, ‘mysql’, ‘xxx’);
    if($this->dbConnect->connect_errno){
    return null; 
    }else{
    return $this->dbConnect;
    }
    }
    
    1 - liên kết này có thể được sử dụng để hiển thị hình ảnh, nếu bạn sử dụng tạo bài viết hoặc trang bằng HTML/CSS
  • function __construct(){
    
    }
    
    function __destruct() {
    $this->dbConnect->close();
    }
    
    function connectDB(){
    $this->dbConnect = new mysqli(‘localhost’, ‘root’, ‘mysql’, ‘xxx’);
    if($this->dbConnect->connect_errno){
    return null; 
    }else{
    return $this->dbConnect;
    }
    }
    
    2 - Cẩn thận, vì khi xóa sẽ không phục hồi được

Edit the image was upload

  • Ở màn hình chỉnh sửa thông tin, nhấp vào
    function __construct(){
    
    }
    
    function __destruct() {
    $this->dbConnect->close();
    }
    
    function connectDB(){
    $this->dbConnect = new mysqli(‘localhost’, ‘root’, ‘mysql’, ‘xxx’);
    if($this->dbConnect->connect_errno){
    return null; 
    }else{
    return $this->dbConnect;
    }
    }
    
    3, sẽ mở ra một hộp dành cho việc chỉnh sửa ảnh

Thư viện tệp php

  • You may be rotated, rotate, change the dimensions, change the dimensions in the ratio,. , you auto khám phá nhé

Tôi là một nhà phát triển di động. Việc một mobile dev muốn viết 1 backend cho riêng mình không phải điều gì quá mới mẻ, nhưng đó là với những bạn đã làm, khi còn đâu mà những anh em muốn bắt tay vào làm 1 backend kết hợp với frontend(mobile . Như tiêu đề đều, bài hôm nay mình sẽ giới thiệu cho các bạn cách build 1 backend đơn giản với PHP và MySQL. Việc một mobile dev muốn viết 1 backend cho riêng mình không phải điều gì quá mới mẻ, nhưng đó là với những bạn đã làm, khi còn đâu mà những anh em muốn bắt tay vào làm 1 backend kết hợp với frontend(mobile . Như tiêu đề đều, bài hôm nay mình sẽ giới thiệu cho các bạn cách build 1 backend đơn giản với PHP và MySQL

Nội dung chính Hiển thị

  • Máy chủ Wamp - XAMPP
  • PHP so với MySQL

Mô hình phổ biến hiện nay là các nhiệm vụ, chức năng, lưu trữ, xử lý, đa nhiệm… sẽ được đưa toàn bộ lên Cloud – Server. Nghĩa là ứng dụng bạn viết ra để thực hiện kết nối (đúng theo cả nghĩa đen và nghĩa bóng) vô cùng tuyệt vời giữa Cloud – Server và End Users. Type type as this

Thư viện tệp php

Hôm nay mình sẽ chia sẻ chút về 3 cục cục www màu xanh và cục cục vô số đên xì có gắn mác Server Stack. www màu xanh và số cục bộ đen xì có gắn nhãn Server Stack

Như ở trên mình đã nói về nhiệm vụ của Server rồi,giờ sẽ chỉ nói về Webservice(có thể gọi là phụ trợ) – thao tác với Database server,xử lý các nhiệm vụ mà client mobile gửi đến rồi sau đó phản hồi lại bên dưới . Ở đây mình lựa chọn ngôn ngữ PHP vì những lý do sau

– Dễ tiếp cận

– Dễ hiểu cho những bạn newbie như tớ. Còn về hiệu suất hay đa tác vụ thì có thể có Nút. js là sự lựa chọn tối ưu?

Bắt đầu với việc chạy một trang PHP trên máy chủ thật thì trước mắt cần chạy vòng lặp kiểm tra trên máy chủ giả lập(localhost) cái đã. Có rất nhiều công cụ cho phép bạn làm điều này, ví dụ như trên cửa sổ có

Máy chủ Wamp - XAMPP

Cái tôi đang sử dụng là AMPPS đang chạy trên nền MacOS. Link tải và giới thiệu tại đây. http. //www. bộ khuếch đại. com

Về cấu hình thì cũng khá đơn giản, bạn cần đưa toàn bộ nguồn vào thư mục. /Ứng dụng/AMPPS/www

Xong xuôi thì các bạn chạy ứng dụng. Tiếp tục nhấp vào nút Start bên Apache để kích hoạt localhost và nút Start bên MySQL để kích hoạt db server nhé. Sau khi bắt đầu, bạn vào trình duyệt và nhập http. // localhost sẽ liệt kê ra toàn bộ thư mục của bạn đã được giả lập là nằm trên máy chủ như thế này. Tớ tạo 1 thư mục có tên là testExample,trong đó mình tạo tiếp 1 thư mục con có tên là config và sau cùng là 1 file PHP có tên là systemConfig. php. File này có nhiệm vụ mở cổng giao tiếp với MySQL và định nghĩa các mã trạng thái HTTP được trả về khi bạn thao tác với máy chủ (link tham khảo về chúng đây. https. // vi. wikipedia. org/wiki/List_of_HTTP_status_codes)

OK,cứ tạm thời tạo thư mục và tệp như vậy. Time is up to view MySQL server THẾ NÀO. Với các bạn đã có kinh nghiệm lập trình web thì còn xa lạ gì nữa rồi. Các bạn gõ vào liên kết duyệt. http. // localhost/phpmyadmin

Các bạn sẽ thao tác trên đó để tạo DB, tạo bảng, chèn dữ liệu, sử dụng câu lệnh SQL để truy vấn…blah,blah, mấy cái này chắc khỏi cần hướng dẫn nữa

Ảnh trên tớ tạo 1 db tên là xxx, 1 bảng đơn giản cũng tên xxx với 2 trường đơn giản bao gồm. image_id (lưu id,tự động tăng) và image_url(lưu url của hình ảnh lấy từ Google về). Viết 1 câu lệnh Câu lệnh SQL đơn giản. Select * from xxx thì it return as this. OK, giờ viết code nào 🙂

PHP so với MySQL

Các bạn vẫn nhớ file systemConfig. php to vừa tạo chứ??


Tiếp theo là viết các hàm tạo và hàm hủy (cả 2 đều tùy chọn nhé)

function __construct(){

}

function __destruct() {
$this->dbConnect->close();
}

function connectDB(){
$this->dbConnect = new mysqli(‘localhost’, ‘root’, ‘mysql’, ‘xxx’);
if($this->dbConnect->connect_errno){
return null; 
}else{
return $this->dbConnect;
}
}

Viết tiếp 1 hàm có tên connectDB() để kết nối đến cơ sở dữ liệu với các tham số

'máy chủ cục bộ'. tên IP cần trỏ đến, ở đây chính là localhost

'gốc', 'mysql'. user and pass access to MySQL (mặc định của php myAdmin)

'xxx'. tên cơ sở dữ liệu bạn tạo

Tiếp theo, viết hàm định nghĩa mã trạng thái HTTP với tham số truyền vào là mã trạng thái, đầu ra là mô tả trạng thái

function getStatusCodeMeeage($status){
$codes = Array(
100 => ‘Continue’,
101 => ‘Switching Protocols’,
200 => ‘OK’,
201 => ‘Created’,
202 => ‘Accepted’,
203 => ‘Non-Authoritative Information’,
204 => ‘No Content’,
205 => ‘Reset Content’,
206 => ‘Partial Content’,
300 => ‘Multiple Choices’,
301 => ‘Moved Permanently’,
302 => ‘Found’,
303 => ‘See Other’,
304 => ‘Not Modified’,
305 => ‘Use Proxy’,
306 => ‘(Unused)’,
307 => ‘Temporary Redirect’,
400 => ‘Bad Request’,
401 => ‘Unauthorized’,
402 => ‘Payment Required’,
403 => ‘Forbidden’,
404 => ‘Not Found’,
405 => ‘Method Not Allowed’,
406 => ‘Not Acceptable’,
407 => ‘Proxy Authentication Required’,
408 => ‘Request Timeout’,
409 => ‘Conflict’,
410 => ‘Gone’,
411 => ‘Length Required’,
412 => ‘Precondition Failed’,
413 => ‘Request Entity Too Large’,
414 => ‘Request-URI Too Long’,
415 => ‘Unsupported Media Type’,
416 => ‘Requested Range Not Satisfiable’,
417 => ‘Expectation Failed’,
500 => ‘Internal Server Error’,
501 => ‘Not Implemented’,
502 => ‘Bad Gateway’,
503 => ‘Service Unavailable’,
504 => ‘Gateway Timeout’,
505 => ‘HTTP Version Not Supported’
);

return (isset($codes[$status])) ? $codes[$status] : ”;
}

Hàm trả về phản hồi khi khách hàng yêu cầu

function sendResponse($status = 200, $body = ”, $content_type = ‘text/html’)
{
$status_header = ‘HTTP/1.1 ‘ . $status . ‘ ‘ . $this->getStatusCodeMeeage($status);
header($status_header);
header(‘Content-type: ‘ . $content_type);
echo $body;
}

Vì vậy, việc cấu hình đã hoàn tất, bước tiếp theo là viết mã để thao tác thực sự với db. Tớ viết thêm 1 class có tên là imageResourcesDAO. php,class có nhiệm vụ lấy ra các bản ghi ở bảng xxx trong db và trả về dưới dạng JSON

dbReference = new systemConfig();
$this->dbConnect = $this->dbReference->connectDB();
if ($this->dbConnect == NULL) {
$this->dbReference->sendResponse(503,'{“error_message”:’.$this->dbReference->getStatusCodeMeeage(503).’}’);
}else{

$sql = “SELECT * FROM xxx”;
$number_per_page = $_POST[“number_per_page”];
$page = ($_POST[“page”]-1)*$number_per_page +1;
$page_next = $_POST[“page”]*$number_per_page;
//echo “$page”;

if ($page != NULL && $number_per_page != NULL) {
//echo “viva for”;
$sql = “SELECT * FROM xxx WHERE image_id BETWEEN $page AND $page_next”;
}/*else{
echo “0 results”;
return;
}*/
$this->result = $this->dbConnect->query($sql);
if($this->result->num_rows > 0){
// output data of each row
$resultSet = array();
while($row = $this->result->fetch_assoc()) {
$resultSet[] = $row;
}
$this->dbReference->sendResponse(200,'{“items”:’.json_encode($resultSet).’}’);
}else{
//echo “0 results”;
$this->dbReference->sendResponse(200,'{“items”:null}’);
}

}
}
}

>

$_POST[“number_per_page”] và $_POST[“page”] là 2 tham số gửi dữ liệu lên server theo dạng POST. Về làm việc với POST hoặc GET các bạn tham khảo ở đây nhé. http. // stackoverflow. com/câu hỏi/3477333/cái-là-sự-khác-biệt-giữa-đăng-và-nhận

Ngắn gọn thì có 2 cách để truyền dữ liệu lên dịch vụ web

- LẤY. params is 1 section of URL or also call is query string

- BƯU KIỆN. params is 1 section of body request

Chú ý đến câu lệnh sql. SELECT * FROM xxx WHERE image_id BETWEEN $page AND $page_next –> câu lệnh này trả về số lượng mục theo số trang và số mục trên 1 trang, sử dụng để tải thêm trên ứng dụng di động sau này. Mọi dòng code đều rất trong sáng và dễ hiểu phải không?

Các bạn có thể mở rộng hơn db bằng cách thêm các bảng và viết các hàm để truy vấn,chèn,cập nhật,xóa nhé,ở tut này mình chỉ code đơn giản demo thôi

Sắp xong. Cuối cùng tạo thêm 1 class để gọi các hàm strong class DAO kia thôi. Tạo lớp có tên imageRequest. php with content

getAllImageResource();

>

Bây giờ là lúc các bạn test sản phẩm của mình. Với tớ thì tớ hay sử dụng REST – plugin của Chrome cho phép gửi yêu cầu theo cả POST hoặc GET đến máy chủ. Đây là các thao tác nhé, bạn sẽ thấy 2 tham số được đưa lên theo phương thức POST (lấy 20 bản ghi ở trang 1)

Nói thêm về việc đưa lên môi trường thật

– Về db thì bạn có thể xuất ra tệp định dạng. sql rồi nhập lên hosting bạn đã đăng ký nhé

– Về config lại một số thông tin như tên IP, user- pass SQL server, bao gồm trang… thì cũng không khó lắm đâu, đọc 1 tẹo là được thôi, thay đổi trong systemConfig. php là OK

Kết quả

Trên đây là một mẫu nhỏ về xây dựng RESTful API dưới bàn tay của 1 newbie vốn đã quen với việc lập trình di động. Các bạn có gì đóng góp xin cứ bình luận ở bên dưới