Tiện ích mở rộng Php ZMQ Windows
Tôi đang sử dụng máy chủ Zend được định cấu hình với IIS 7. 5. Tôi đã tìm kiếm để chỉnh sửa. phần mở rộng php zeromq, tôi đã tìm thấy các http này. //valokuva. org/builds/ và http. // ảnh chụp nhanh. số không. mq/ Show
Tôi đã thử thêm tiện ích mở rộng trong php. ini và khi tôi kích hoạt nó từ zend admin thì nó báo lỗi Tôi đã cố gắng xây dựng tiện ích mở rộng (. dll) từ nguồn nhưng nó cũng không hoạt động. Trên http. //www. zeromq. tổ chức/ràng buộc. php nó được viết Trước tiên, bạn sẽ cần cài đặt ØMQ (2. 1. x trở lên được khuyến nghị) Tôi có phải cài đặt thứ gì đó trước trên máy của mình để sử dụng tiện ích mở rộng này không vì chỉ có sẵn nguồn hoặc tôi đặt tệp không chính xác? Mặc dù tôi đang chạy ràng buộc zeromq cho python và đang hoạt động bình thường Bất kỳ trợ giúp hoặc hướng dẫn được đánh giá cao Giải pháp tốt nhấtĐối với bất kỳ ai khác đang tìm kiếm điều này, tôi đã tìm thấy nó tại
Đặc biệt
Giải pháp liên quanPhp – Cách ngăn SQL injection trong PHPCách chính xác để tránh các cuộc tấn công SQL injection, bất kể bạn sử dụng cơ sở dữ liệu nào, là tách dữ liệu khỏi SQL, để dữ liệu vẫn là dữ liệu và sẽ không bao giờ được trình phân tích cú pháp SQL diễn giải thành các lệnh. Có thể tạo câu lệnh SQL với các phần dữ liệu được định dạng chính xác, nhưng nếu bạn không hiểu đầy đủ chi tiết, bạn nên luôn sử dụng câu lệnh đã chuẩn bị sẵn và truy vấn được tham số hóa. Đây là các câu lệnh SQL được máy chủ cơ sở dữ liệu gửi đến và phân tích cú pháp riêng biệt với bất kỳ tham số nào. Bằng cách này, kẻ tấn công không thể tiêm SQL độc hại Về cơ bản, bạn có hai lựa chọn để đạt được điều này
Nếu bạn đang kết nối với cơ sở dữ liệu không phải MySQL, thì có tùy chọn thứ hai dành riêng cho trình điều khiển mà bạn có thể tham khảo (ví dụ: 5 và 6 cho PostgreSQL). PDO là tùy chọn phổ quátThiết lập kết nối chính xácLưu ý rằng khi sử dụng PDO để truy cập cơ sở dữ liệu MySQL, các câu lệnh chuẩn bị thực không được sử dụng theo mặc định. Để khắc phục điều này, bạn phải tắt mô phỏng các câu lệnh đã chuẩn bị. Một ví dụ về việc tạo kết nối bằng PDO là
Trong ví dụ trên, chế độ lỗi không thực sự cần thiết, nhưng bạn nên thêm nó vào. Bằng cách này, kịch bản sẽ không dừng lại với một 7 khi có sự cố xảy ra. Và nó mang lại cho nhà phát triển cơ hội để 8 bất kỳ (các) lỗi nào mà 9n thành 0sTuy nhiên, điều bắt buộc là dòng 1 đầu tiên, yêu cầu PDO tắt các câu lệnh đã chuẩn bị được mô phỏng và sử dụng các câu lệnh đã chuẩn bị thực sự. Điều này đảm bảo rằng câu lệnh và các giá trị không được PHP phân tích cú pháp trước khi gửi nó đến máy chủ MySQL (khiến kẻ tấn công không có cơ hội tiêm SQL độc hại)Mặc dù bạn có thể đặt 2 trong các tùy chọn của hàm tạo, điều quan trọng cần lưu ý là các phiên bản 'cũ' của PHP (trước 5. 3. 6) âm thầm bỏ qua tham số bộ ký tự trong DSNGiải trìnhCâu lệnh SQL bạn chuyển đến 3 được máy chủ cơ sở dữ liệu phân tích cú pháp và biên dịch. Bằng cách chỉ định các tham số (hoặc một tham số 4 hoặc một tham số được đặt tên như 5 trong ví dụ trên), bạn cho công cụ cơ sở dữ liệu biết nơi bạn muốn lọc. Sau đó, khi bạn gọi 6, câu lệnh đã chuẩn bị được kết hợp với các giá trị tham số mà bạn chỉ địnhĐiều quan trọng ở đây là các giá trị tham số được kết hợp với câu lệnh đã biên dịch, không phải là chuỗi SQL. SQL injection hoạt động bằng cách lừa tập lệnh bao gồm các chuỗi độc hại khi nó tạo SQL để gửi đến cơ sở dữ liệu. Vì vậy, bằng cách gửi SQL thực riêng biệt với các tham số, bạn sẽ hạn chế rủi ro kết thúc bằng thứ mà bạn không có ý định Bất kỳ tham số nào bạn gửi khi sử dụng câu lệnh đã chuẩn bị sẽ chỉ được coi là chuỗi (mặc dù công cụ cơ sở dữ liệu có thể thực hiện một số tối ưu hóa để tất nhiên, tham số cũng có thể kết thúc dưới dạng số). Trong ví dụ trên, nếu biến 7 chứa 8 thì kết quả sẽ chỉ là tìm kiếm chuỗi 9 và bạn sẽ không nhận được một bảng trốngMột lợi ích khác của việc sử dụng các câu lệnh đã chuẩn bị là nếu bạn thực hiện cùng một câu lệnh nhiều lần trong cùng một phiên thì nó sẽ chỉ được phân tích cú pháp và biên dịch một lần, giúp bạn tăng tốc độ Ồ, và vì bạn đã hỏi về cách thực hiện cho phần chèn, đây là một ví dụ (sử dụng PDO)
Câu lệnh đã chuẩn bị có thể được sử dụng cho các truy vấn động không?Mặc dù bạn vẫn có thể sử dụng các câu lệnh đã chuẩn bị cho các tham số truy vấn, nhưng bản thân cấu trúc của truy vấn động không thể được tham số hóa và một số tính năng truy vấn nhất định không thể được tham số hóa Đối với những trường hợp cụ thể này, điều tốt nhất cần làm là sử dụng bộ lọc danh sách trắng để hạn chế các giá trị có thể
Php – Xóa phần tử khỏi mảng trong PHPCó nhiều cách khác nhau để xóa một phần tử mảng, trong đó một số cách hữu ích cho một số tác vụ cụ thể hơn những cách khác Xóa một phần tử mảngNếu bạn chỉ muốn xóa một phần tử mảng, bạn có thể sử dụng 0 hoặc cách khác là 1Nếu bạn biết giá trị và không biết khóa để xóa phần tử, bạn có thể sử dụng 2 để lấy khóa. Điều này chỉ hoạt động nếu phần tử không xảy ra nhiều lần, vì 3 chỉ trả về lần truy cập đầu tiên$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?'); $stmt->bind_param('s', $name); // 's' specifies the variable type => 'string' $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { // Do something with $row } 0Lưu ý rằng khi bạn sử dụng 0 thì các khóa của mảng sẽ không thay đổi. Nếu bạn muốn lập chỉ mục lại các khóa, bạn có thể sử dụng 6 sau 0, điều này sẽ chuyển đổi tất cả các khóa thành các khóa được liệt kê bằng số bắt đầu từ 0Mã số
đầu ra
$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?'); $stmt->bind_param('s', $name); // 's' specifies the variable type => 'string' $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { // Do something with $row } 1 phương phápNếu bạn sử dụng 1, các khóa sẽ tự động được lập chỉ mục lại, nhưng các khóa kết hợp sẽ không thay đổi — trái ngược với 6, sẽ chuyển đổi tất cả các khóa thành khóa số 1 cần phần bù, không phải khóa, làm tham số thứ haiMã số
đầu ra 0 2, giống như 0, lấy mảng theo tham chiếu. Bạn không gán giá trị trả về của các hàm đó cho mảngXóa nhiều phần tử mảngNếu bạn muốn xóa nhiều phần tử mảng và không muốn gọi hàm 0 hoặc 1 nhiều lần thì có thể sử dụng hàm 6 hoặc 7 tùy thuộc vào việc bạn có biết giá trị hoặc khóa của phần tử muốn xóa hay không.phương pháp $dbConnection = new PDO('mysql:dbname=dbtest;host=127.0.0.1;charset=utf8', 'user', 'password'); $dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 6Nếu bạn biết giá trị của các phần tử mảng mà bạn muốn xóa, thì bạn có thể sử dụng 6. Như trước đây với 0, nó sẽ không thay đổi các khóa của mảngMã số 1đầu ra 2phương pháp $dbConnection = new PDO('mysql:dbname=dbtest;host=127.0.0.1;charset=utf8', 'user', 'password'); $dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 7Nếu bạn biết khóa của các phần tử mà bạn muốn xóa, thì bạn muốn sử dụng 7. Bạn phải đảm bảo rằng bạn chuyển các khóa dưới dạng khóa trong tham số thứ hai chứ không phải dưới dạng giá trị. Khóa sẽ không lập chỉ mục lạiMã số 3đầu ra 2Nếu bạn muốn sử dụng 0 hoặc 1 để xóa nhiều phần tử có cùng giá trị, bạn có thể sử dụng 5 để lấy tất cả các khóa cho một giá trị cụ thể rồi xóa tất cả phần tử
Làm cách nào để cài đặt PHP Zmq?Cách cài đặt Tiện ích mở rộng PHP ZeroMQ . Cài đặt Tiện ích mở rộng PHP ZeroMQ. Để cài đặt tiện ích mở rộng này, hãy SSH vào máy chủ của bạn với quyền root và chạy các lệnh sau. sudo apt-get -y cài đặt gcc tạo autoconf pkg-config. . Xác minh cài đặt. . Gỡ cài đặt tiện ích mở rộng ZeroMQ Làm cách nào để cài đặt ZeroMQ trong xampp?2 câu trả lời . tải xuống các tệp dll x86 từ trang web này sao chép php_zmq. dll sang C. \xampp\php\ext sao chép libsodium. dll và libzmq. dll sang C. \xampp\php thêm phần mở rộng = php_zmq. dll sang php. tập tin ini khởi động lại apache |