Hướng dẫn dùng javascript encodeuricomponent trong PHP

Tôi đang tìm kiếm chức năng tương tự như urlencode()từ PHP chỉ trong JavaScript. Thư viện jQuery được cho phép.

Về cơ bản, tôi cần mã hóa chuỗi và sau đó chuyển hướng người dùng đến một trang khác chỉ bằng JavaScript.

  • php
  • javascript
  • url
  • urlencode

14 hữu ích 0 bình luận 18k xem chia sẻ

answer

25

Hướng dẫn dùng javascript encodeuricomponent trong PHP

Không có chức năng khá phù hợp urlencode(), nhưng có một khá tương đương với rawurlencode(): encodeURIComponent().

Sử dụng: var encoded = encodeURIComponent(str);

Bạn có thể tìm tài liệu tham khảo tại đây:

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent

25 hữu ích 0 bình luận chia sẻ

answer

3

Hãy xem phpjs.org nếu bạn đang tìm kiếm một hàm JS tương đương với PHP:

http://phpjs.org/functions/urlencode:573

Ở đây bạn có thể sử dụng encodeURIComponent()(với một số sửa đổi).

3 hữu ích 0 bình luận chia sẻ

answer

2

Từ: https://www.php.net/manual/en/ Chức năng.urlencode.php

Trả về một chuỗi trong đó tất cả các ký tự không phải chữ và số ngoại trừ -_. đã được thay thế bằng dấu phần trăm (%) theo sau là hai chữ số hex và dấu cách được mã hóa dưới dạng dấu cộng (+). Nó được mã hóa giống như cách mã hóa dữ liệu đã đăng từ biểu mẫu WWW, giống như trong loại phương tiện được mã hóa application / x-www-form-urlencoded. Điều này khác với »mã hóa RFC 3986 (xem mã rawurlencode ()) ở chỗ vì lý do lịch sử, dấu cách được mã hóa dưới dạng dấu cộng (+)

Từ: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent :

encodeURIComponent () thoát khỏi tất cả các ký tự ngoại trừ:
Không thoát: AZ az 0-9 - _. ! ~ * '()

Đoạn mã được cung cấp ở gần cuối trang đó trông giống như sau:

function fixedEncodeURIComponent(str) {
  return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
    return '%' + c.charCodeAt(0).toString(16);
  });
}

Tôi đang điều chỉnh một chút đoạn mã javascript được cung cấp để bao gồm thêm một vài ký tự.

Mã của tôi:

function urlEncodeLikePHP(str) {
    return encodeURIComponent(str).replace(/[.!~*'()]/g, function(c) {
        return '%' + c.charCodeAt(0).toString(16);
    });
}

Sử dụng:

urlEncodeLikePHP("._!_~_*_'_(_)-\\-&-|-/");
// effectively: "._!_~_*_'_(_)-\-&-|-/"

Đầu ra được mã hóa:

%2e_%21_%7e_%2a_%27_%28_%29-%5C-%26-%7C

2 hữu ích 0 bình luận chia sẻ

answer

2

Mã của tôi là hàm JS tương đương với urlencode của PHP (dựa trên mã nguồn của PHP).

function urlencode(str) {
  let newStr = '';
  const len = str.length;

  for (let i = 0; i < len; i++) {
    let c = str.charAt(i);
    let code = str.charCodeAt(i);

    // Spaces
    if (c === ' ') {
      newStr += '+';
    }
    // Non-alphanumeric characters except "-", "_", and "."
    else if ((code < 48 && code !== 45 && code !== 46) ||
             (code < 65 && code > 57) ||
             (code > 90 && code < 97 && code !== 95) ||
             (code > 122)) {
      newStr += '%' + code.toString(16);
    }
    // Alphanumeric characters
    else {
      newStr += c;
    }
  }

  return newStr;
}

2 hữu ích 0 bình luận chia sẻ

answer

0

0 hữu ích 1 bình luận chia sẻ

answer

0

Hãy thử urlencode từ http://locutus.io/php/url/urlencode/ . Tôi đã thử nghiệm nó trong một số trường hợp tôi đã gặp và nó hoạt động.

0 hữu ích 0 bình luận chia sẻ

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Tôi đang tìm kiếm chức năng tương tự như urlencode()từ PHP chỉ trong JavaScript. Thư viện jQuery được cho phép.

Về cơ bản, tôi cần mã hóa chuỗi và sau đó chuyển hướng người dùng đến một trang khác chỉ bằng JavaScript.

  • php
  • javascript
  • url
  • urlencode

14 hữu ích 0 bình luận 18k xem chia sẻ

answer

25

Không có chức năng khá phù hợp urlencode(), nhưng có một khá tương đương với rawurlencode(): encodeURIComponent().

Sử dụng: var encoded = encodeURIComponent(str);

Bạn có thể tìm tài liệu tham khảo tại đây:

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent

25 hữu ích 0 bình luận chia sẻ

answer

3

Hãy xem phpjs.org nếu bạn đang tìm kiếm một hàm JS tương đương với PHP:

http://phpjs.org/functions/urlencode:573

Ở đây bạn có thể sử dụng encodeURIComponent()(với một số sửa đổi).

3 hữu ích 0 bình luận chia sẻ

answer

2

Từ: https://www.php.net/manual/en/ Chức năng.urlencode.php

Trả về một chuỗi trong đó tất cả các ký tự không phải chữ và số ngoại trừ -_. đã được thay thế bằng dấu phần trăm (%) theo sau là hai chữ số hex và dấu cách được mã hóa dưới dạng dấu cộng (+). Nó được mã hóa giống như cách mã hóa dữ liệu đã đăng từ biểu mẫu WWW, giống như trong loại phương tiện được mã hóa application / x-www-form-urlencoded. Điều này khác với »mã hóa RFC 3986 (xem mã rawurlencode ()) ở chỗ vì lý do lịch sử, dấu cách được mã hóa dưới dạng dấu cộng (+)

Từ: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent :

encodeURIComponent () thoát khỏi tất cả các ký tự ngoại trừ:
Không thoát: AZ az 0-9 - _. ! ~ * '()

Đoạn mã được cung cấp ở gần cuối trang đó trông giống như sau:

function fixedEncodeURIComponent(str) {
  return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
    return '%' + c.charCodeAt(0).toString(16);
  });
}

Tôi đang điều chỉnh một chút đoạn mã javascript được cung cấp để bao gồm thêm một vài ký tự.

Mã của tôi:

function urlEncodeLikePHP(str) {
    return encodeURIComponent(str).replace(/[.!~*'()]/g, function(c) {
        return '%' + c.charCodeAt(0).toString(16);
    });
}

Sử dụng:

urlEncodeLikePHP("._!_~_*_'_(_)-\\-&-|-/");
// effectively: "._!_~_*_'_(_)-\-&-|-/"

Đầu ra được mã hóa:

%2e_%21_%7e_%2a_%27_%28_%29-%5C-%26-%7C

2 hữu ích 0 bình luận chia sẻ

answer

2

Mã của tôi là hàm JS tương đương với urlencode của PHP (dựa trên mã nguồn của PHP).

function urlencode(str) {
  let newStr = '';
  const len = str.length;

  for (let i = 0; i < len; i++) {
    let c = str.charAt(i);
    let code = str.charCodeAt(i);

    // Spaces
    if (c === ' ') {
      newStr += '+';
    }
    // Non-alphanumeric characters except "-", "_", and "."
    else if ((code < 48 && code !== 45 && code !== 46) ||
             (code < 65 && code > 57) ||
             (code > 90 && code < 97 && code !== 95) ||
             (code > 122)) {
      newStr += '%' + code.toString(16);
    }
    // Alphanumeric characters
    else {
      newStr += c;
    }
  }

  return newStr;
}

2 hữu ích 0 bình luận chia sẻ

answer

0

0 hữu ích 1 bình luận chia sẻ

answer

0

Hãy thử urlencode từ http://locutus.io/php/url/urlencode/ . Tôi đã thử nghiệm nó trong một số trường hợp tôi đã gặp và nó hoạt động.

0 hữu ích 0 bình luận chia sẻ

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm