Đường dẫn php

  • include hoặc
    $base_dir = __DIR__;
    
    0 tiện lợi cho công việc sử dụng những phần sử dụng chung, ví dụ tiêu đề, chân trang, thanh bên hoặc một chức năng sử dụng chung nào đó
  • Đối với những phần sử dụng chung này, tách riêng ra 1 tệp PHP, sau đó sử dụng include hoặc
    $base_dir = __DIR__;
    
    0 để kết nối
  • Điều này thuận lợi cho việc chỉnh sửa, thay vì chỉnh sửa nhiều trang, giờ thì ta chỉ việc chỉnh sửa tệp PHP đã tách riêng là được
  • Sự khác biệt giữa include

    $base_dir = __DIR__;
    
    0

    • include. mã bên dưới include sẽ tiếp tục thực thi, cho dù tệp được include tồn tại hay không
    • $base_dir = __DIR__;
      
      0. mã bên dưới
      $base_dir = __DIR__;
      
      0 sẽ không được thực thi nếu tệp được
      $base_dir = __DIR__;
      
      0 không tồn tại
  • Trong lập trình PHP, việc lấy đường dẫn tuyệt đối, document root hay base url sẽ là 1 chút khó khăn đối với những bạn mới làm quen với PHP. Vì vậy bài viết này sẽ hướng dẫn 1 số đoạn trích để lấy đường dẫn tuyệt đối, gốc tài liệu và URL cơ sở

    Lấy đường dẫn tuyệt đối [đường dẫn tuyệt đối]

    Giả sử mã hoặc tập lệnh của bạn đặt trong

    $doc_root = preg_replace["!${_SERVER['SCRIPT_NAME']}$!", '', $_SERVER['SCRIPT_FILENAME']];
    
    1, thì đoạn mã sau sẽ trả về kết quả như sau

    /var/www/path/example.com/httpdocs/path/directory.
    

    $base_dir = __DIR__;
    

    Chú ý là kết quả không có dấu

    $doc_root = preg_replace["!${_SERVER['SCRIPT_NAME']}$!", '', $_SERVER['SCRIPT_FILENAME']];
    
    2 ở cuối

    Lấy tài liệu gốc

    Snippet will return to document root which does not have script filename

    $doc_root = preg_replace["!${_SERVER['SCRIPT_NAME']}$!", '', $_SERVER['SCRIPT_FILENAME']];
    

    Ví dụ sẽ được trả về dưới dạng

    $doc_root = preg_replace["!${_SERVER['SCRIPT_NAME']}$!", '', $_SERVER['SCRIPT_FILENAME']];
    
    3

    Chú ý là kết quả không có dấu

    $doc_root = preg_replace["!${_SERVER['SCRIPT_NAME']}$!", '', $_SERVER['SCRIPT_FILENAME']];
    
    2 ở cuối

    Get base URL of script current at

    Ví dụ, nếu tập lệnh của bạn đặt trong

    $doc_root = preg_replace["!${_SERVER['SCRIPT_NAME']}$!", '', $_SERVER['SCRIPT_FILENAME']];
    
    1 của trang web
    $doc_root = preg_replace["!${_SERVER['SCRIPT_NAME']}$!", '', $_SERVER['SCRIPT_FILENAME']];
    
    6, thì đoạn mã đoạn mã sẽ trả về.
    $base_dir = __DIR__;
    
    0

    Đối với dữ liệu của phần lớn trang web chúng ta đều lưu trữ trong CSDL tuy nhiên cũng có đôi lúc việc lưu trữ dữ liệu với tệp sẽ thuận tiện hơn rất nhiều do dễ dàng thay đổi chẳng hạn như lưu trữ thông tin truy cập CSDL cho

    Việc ôm kiến ​​thức về lý tệp và giới hạn quyền của tệp, thư mục [trong Linux] khi học PHP không giúp bạn dễ dàng lưu trữ thông tin cho trang web mà còn giúp bạn tăng tính bảo mật cho các tệp và thư mục

    Để biểu diễn cho dấu phân cách trong đường dẫn chúng ta sử dụng dấu \ trên hệ điều hành Windows còn trên Linux chúng ta sử dụng dấu /. Để đơn giản hóa khi biểu diễn ký tự phân cách trong đường dẫn PHP, hãy sử dụng hằng DIRECTORY_SEPARATOR để biểu diễn

    Ví dụ.  

    DEFINE['DS', DIRECTORY_SEPARATOR]; 
    $path = 'www'.DS.'site'.DS.'admin'; 
    //Biểu diễn cho đường dẫn tương đối $path = www/site/admin [trên Linux] và $path = www\site\admin [trên Windows]

    Dưới đây là một số hàm thường được sử dụng để xử lý tệp và thư mục trong PHP

    • is_file[$path]. return TRUE if $path tồn tại và là một tệp
    • is_dir[$path]. return TRUE if $path tồn tại và là một thư mục
    • file_exists[$path]. return TRUE if $path tồn tại và là một tệp hoặc thư mục
    • getcwd[]. Returned string icon the current directory at working
    • scandir[$path]. Trả về một mảng chứa tệp danh sách và thư mục trong đường dẫn $path nếu $path là tên 1 thư mục tồn tại, nếu không trả về FALSE

    Chúng ta xem qua một ví dụ đơn giản liệt kê các tập tin và thư mục hiện hành

    Đọc tập tin

    To read file they ta use fread[$file, $length] and to write file they ta use fwrite[$file, $data].  

    Ví dụ

    Trong ví dụ trên tệp chào mừng chúng ta đọc. txt ở chế độ chỉ đọc [r] và để tránh trường hợp xảy ra lỗi khi không tìm thấy tệp mà chúng tôi đặt ký tự @ trước hàm fopen[]. Hàm filesize[] sẽ trả về toàn bộ kích thước của file cần đọc. Sau khi đọc xong chúng ta đóng lại tệp qua hàm fclose[] để xóa bỏ vị trí của con trỏ đang duyệt tệp

    Ghi tập tin

    Trước khi thực hiện thao tác ghi tệp chúng ta nên kiểm tra tệp có quyền khi hay không bằng cách sử dụng hàm is_writeable[$filename]

    Cập nhật dử liệu

    Xử lý upload file là công việc mà chúng ta thường xuyên gặp phải nhất khi làm việc với file và form upload file cũng là nơi để hacker dễ dàng khai thác các lỗi cấu thành khi upload shellscript lên webserver. Vì vậy chúng ta cần kiểm tra kỹ định dạng tệp trước khi di chuyển nó sang thư mục đã được định sẵn trên trang web

    Để có thể tải tệp lên được, chúng ta cần có trường nhập với type="file" và trên biểu mẫu tải lên, chúng ta cần chỉ định thuộc tính enctype="multipart/form-data"

    ________số 8

    Khi người dùng gửi biểu mẫu, tệp sẽ được tải lên thư mục tạm thời của máy chủ web và tên của tệp đã tải lên cũng là tên tạm thời do máy chủ web sinh ra, hãy làm như vậy để chuyển nó đến thư mục đã được chỉ định trên máy chủ web mà chúng tôi cần

    Chủ Đề