کتابخانه‌ی استاندارد · کدگذاری و داده

پرس‌وجو encoding/query

خواندن و ساختن رشته‌ی پرس‌وجوی نشانی وب، مثل q=سلام&page=2.

واردسازی کدگذاری.پرس‌وجو
در این صفحه
  1. گونه‌ها
  2. روال‌ها

رشته‌ی پرس‌وجو بخش بعد از ? در نشانی وب است. یک کلید ممکن است چند بار بیاید، مثل tag=a&tag=b؛ برای همین نگاشت پرس‌وجو برای هر کلید فهرستی از مقدارها نگه می‌دارد و ترتیب کلیدها را هم حفظ می‌کند.

روال‌هایی مثل مقدار و دارد مستقیم روی رشته کار می‌کنند و برای یک بار خواندن مناسب‌اند.

گونه‌ها

گزینه‌های پرس‌وجو QueryOptions

ساختار گزینه‌های پرس‌وجو
گزینه‌های کدگذاری.
نامانگلیسیگونهتوضیح
space_as_plusspace_as_plusمنطقی = درستفاصله به + تبدیل شود؛ پیش‌فرض درست. اگر نادرست باشد، %20 نوشته می‌شود.
encoding-query-Query.salam
واردسازی کدگذاری.پرس‌وجو

روال ریشه:
    متن := "q=%D8%B3%D9%84%D8%A7%D9%85&page=2&tag=a&tag=b&empty="
    سرچاپ پرس‌وجو.مقدار(متن، "q")، پرس‌وجو.مقدار(متن، "page")، پرس‌وجو.دارد(متن، "empty")، پرس‌وجو.دارد(متن، "x")
    سرچاپ پرس‌وجو.همه مقدارها(متن، "tag")
    ناپایا ن := پرس‌وجو.کدگشایی(متن)
    سرچاپ پرس‌وجو.اندازه(ن)، پرس‌وجو.کلیدها(ن)
    پرس‌وجو.افزودن(ن، "tag"، "c")
    پرس‌وجو.تنظیم(ن، "page"، "3")
    سرچاپ پرس‌وجو.حذف(ن، "empty")
    سرچاپ پرس‌وجو.کدگذاری(ن)
    ناپایا نگه := وکتور {} برگردان وکتور<رشته>
    نگه.بیفزا("q")
    پرس‌وجو.نگه داشتن(ن، نگه)
    سرچاپ پرس‌وجو.کدگذاری(ن)
    گ := پرس‌وجو.گزینه‌های پرس‌وجو {}
    سرچاپ پرس‌وجو.کدگذاری سفارشی(پرس‌وجو.کدگشایی سفارشی("b=2&a=1"، گ)، گ)
    خالی := پرس‌وجو.نگاشت پرس‌وجو جدید()
    سرچاپ پرس‌وجو.اندازه(خالی)
پایان
خروجیسلام 2 true false ["a", "b"] 4 ["q", "page", "tag", "empty"] true q=%D8%B3%D9%84%D8%A7%D9%85&page=3&tag=a&tag=b&tag=c q=%D8%B3%D9%84%D8%A7%D9%85 b=2&a=1 0

مقدارهای پرس‌وجو QueryValues

ساختار مقدارهای پرس‌وجو
مقدارهای یک کلید.
نامانگلیسیگونهتوضیح
itemsitemsوکتور<رشته>مقدارها، به ترتیب.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

نگاشت پرس‌وجو QueryMap

ساختار نگاشت پرس‌وجو
نگاشت کلید به مقدارها، با ترتیب کلیدها.
نامانگلیسیگونهتوضیح
datadataنگاشت<رشته، مقدارهای پرس‌وجو>مقدارهای هر کلید.
orderorderوکتور<رشته>کلیدها به ترتیب نخستین ظهور.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

روال‌ها

نگاشت پرس‌وجو جدید NewQueryMap

روال نگاشت پرس‌وجو جدید(): نگاشت پرس‌وجو
نگاشت خالی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

کدگشایی سفارشی DecodeWith

روال کدگشایی سفارشی(qs: رشته، opts: گزینه‌های پرس‌وجو): نگاشت پرس‌وجو
رشته‌ی پرس‌وجو را با گزینه‌های داده‌شده می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

کدگشایی Decode

روال کدگشایی(qs: رشته): نگاشت پرس‌وجو
رشته‌ی پرس‌وجو را می‌خواند؛ کدگذاری درصدی و + برگردانده می‌شوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

کدگذاری سفارشی EncodeWith

روال کدگذاری سفارشی(values: نگاشت پرس‌وجو، opts: گزینه‌های پرس‌وجو): رشته
نگاشت را با گزینه‌های داده‌شده به رشته تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

کدگذاری Encode

روال کدگذاری(values: نگاشت پرس‌وجو): رشته
نگاشت را به رشته‌ی پرس‌وجو تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

همه مقدارها GetAll

روال همه مقدارها(qs: رشته، key: رشته): وکتور<رشته>
همه‌ی مقدارهای یک کلید در رشته.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

مقدار Get

روال مقدار(qs: رشته، key: رشته): رشته
نخستین مقدار یک کلید در رشته؛ اگر نباشد، رشته‌ی خالی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

دارد Has

روال دارد(qs: رشته، key: رشته): منطقی
اگر کلید در رشته باشد، حتی با مقدار خالی، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

اندازه Size

روال اندازه(m: نگاشت پرس‌وجو): صحیح
تعداد کلیدها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

افزودن Add

روال افزودن(values &: نگاشت پرس‌وجو، key: رشته، val: رشته)
مقدار تازه‌ای به کلید اضافه می‌کند و مقدارهای قبلی را نگه می‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

تنظیم Set

روال تنظیم(values &: نگاشت پرس‌وجو، key: رشته، val: رشته)
همه‌ی مقدارهای کلید را با یک مقدار جایگزین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

کلیدها Keys

روال کلیدها(values: نگاشت پرس‌وجو): وکتور<رشته>
کلیدها به ترتیب.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

حذف Remove

روال حذف(values &: نگاشت پرس‌وجو، key: رشته): منطقی
کلید و مقدارهایش را برمی‌دارد و می‌گوید وجود داشت یا نه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam

نگه داشتن Retain

روال نگه داشتن(values &: نگاشت پرس‌وجو، keep: وکتور<رشته>)
فقط کلیدهای داده‌شده را نگه می‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-query-Query.salam