سؤال

النظر في هذا الرمز البسيط: giveacodicetagpre.

يطبع giveacodicetagpre.

بدلا من giveacodicetagpre.

هل تعرف ماذا أفعل الخطأ؟


لم يتغير شيء بعد إضافة SetLocale giveacodicetagpre.

هل كانت مفيدة؟

المحلول

لدي هذه الوظيفة القياسية لإرجاع سلاسل URL صالحة دون أحرف URL غير صالحة.يبدو أن السحر في الخط بعد // إزالة الأحرف غير المرغوب فيها التعليق.

مأخوذ من وثائق Symfony Framework: http:// www.symfony-project.org / jobeet / 1_4 / en / en / 08 الذي بدوره مأخوذ من http://php.vrana.cz/vytvoreni-pratelkeho-url.php لكنني لا أتحدث التشيكية؛ -) giveacodicetagpre.

نصائح أخرى

cftchrist، مع امتداد Intl PHP

http://fr2.php.net/manual/en/book.intl.php هذا > giveacodicetagpre.

eéèêëiîïöööüaâääå ἥἥǟǡǟǡǻƶƈɖųǻƶƈɖųǻƶƈɖųƚŧƚŧƚŧ ƚŧ يصبح

eeeeiiiooouuuaaaaa oua aƶƈɖuuŧoƀ␢ƀ␢ƚŧƚŧ ƀu


كما يؤكد Tchrist، لا يتم اعتبار جميع أحرف Unicode للتحلل:

استخراج من مخططات Unicode:

u0080.pdf

00cf ï رسالة رأس المال اللاتينية i مع الحميم

≡ 0049 i 0308 ¨

nb هذا الرمز «≡» تشير إلى تحلل متاح

00d0 ð Latin Capital Letter Eth

→ 00f0 ð رسالة صغيرة ith

→ 0110 đ Latin Capital Letter D مع السكتة الدماغية

→ 0189 ɖ Latin Capital إلكتروني African D

لا تحلل متاح، IMHO بغرابة (يمكننا النظر في حرف ASCII D كمعادل مقبول).

u0100.pdf

0110 đ Latin Capital Letter D مع السكتة الدماغية

→ 00d0 ð Latin Capital Letter Eth

→ 0111 đ حرف صغير لاتينية D مع السكتة الدماغية

→ 0189 ɖ Latin Capital إلكتروني African D

حتى الغريب: يتم تحديد هذا واحد كحرف كأس المال اللاتيني D (مع السكتة الدماغية)، ولكن ليس من التحلل على هذا النحو! ربما يجب أن يكون حل أكثر برودة للحصول على وصف يونيكود لكل سحر، وقارنه مع وصف كل ascii char (واستبدال وفقا لذلك). أي واحد؟ ؛ -]

cf http://unicode.org/public/unidata/unicodedata.txt

يحدث معي مع Iconv النقي بدون PHP.كانت الحيلة لتعيين قيمة بيئة Lang إلى en_us.utf-8 (كان hu_hu.utf-8 قبل، في حالتي).بعد أن عملت كما هو متوقع.

عند القيام حرفيا، يجب عليك التأكد من تعيين LC_Collate الخاص بك بشكل صحيح، وإلا سيتم استخدام Posix الافتراضي.

إلقاء نظرة على http://uk3.php.net/manual/en/وظيفة.SetLocale.php

أنا إغراء أن أقول "لا شيء"، على الرغم من أن هذا خارج خبرتي قليلا.ICONV في PHP () سيئة السمعة، والإلهام للعديد من الحلول، بما في ذلك

  • إسقاط إلى Iconv النظام فائدة (UNIX & LINUX)
  • صياغة طاولة بحث
  • استبدال كل الأحرف المعلمة مع ما يعادل ASCII كنوع من مرحلة ما قبل البيع
  • إعداد LC_Collate (الذي لا يبدو أن العمل للجميع)
  • استخدم htmlentities () بدلا من Iconv ()

    اقرأ التعليقات الخاصة ب Iconv () وثائق ICONV () لمزيد من الإلهام.(أو دموع. قريب جدا من الاتصال.)

يبدو أن الطريقة القياسية للتعامل مع وظيفة "إزالة لهجات" التي يمكنك العثور عليها في المكتبة مثل تزدهر أو CMS مثل WordPress .يبدو أن ICONV غير قادر على ترجمة لهجات (وبحق ذلك) لأن هذه ليست فكرة جيدة عن أي شيء آخر غير سبيكة URL.

يبدو أنه يعتمد على إصدار PHP ...


testcase # 1 giveacodicetagpre.

php 7.0.0rc8 (CLI) (بنيت: 25 نوفمبر 2015 12:36:50) (NTS) حقوق النشر (ج) 1997-2015 مجموعة PHP zend Engine v3.0.0، حقوق الطبع والنشر (ج) 1998-2015 Zend Technologies مع zend opcache v7.0.6 dev، حقوق الطبع والنشر (ج) 1999-2015، بواسطة Zend Technologies giveacodicetagpre.


testcase # 2 giveacodicetagpre.

php 7.0.8-1 ~ dotdeb + 8.1 (CLI) (NTS) حقوق النشر (ج) 1997-2016 مجموعة PHP zend Engine v3.0.0، حقوق الطبع والنشر (ج) 1998-2016 zend Technologies مع zend opcache v7.0.8-1 ~ Dotdeb + 8.1، حقوق الطبع والنشر (ج) 1999-2016، من قبل Zend Technologies giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top