ใครช่วยให้ฉันมีฟังก์ชั่นในการสร้างทากได้ไหม

Dec 30 2020

ฟังก์ชันที่ Wordpress ใช้ในการสร้างทากนั้นกระจัดกระจายอยู่ในฟังก์ชันและตัวกรองต่างๆ ฉันไม่พบพวกเขาทั้งหมด ใครสามารถให้ฉันฟังก์ชั่น php เดียวเพื่อสร้างทาก? ฉันไม่ต้องการฟังก์ชันทั้งหมดของ Wordpress เพียงแค่ต้องเข้ารหัสอักขระที่ไม่ใช่ภาษาละตินและลบอักขระที่ผิดกฎหมายที่ไม่ได้รับอนุญาตใน url

โพสต์นี้มีฟังก์ชัน แต่ไม่สามารถจัดการกับอักขระที่ไม่ใช่ภาษาละตินได้

ขอบคุณ!

คำตอบ

1 TomJNowell Dec 30 2020 at 21:14

โพสต์นี้มีฟังก์ชัน แต่ไม่สามารถจัดการกับอักขระที่ไม่ใช่ภาษาละตินได้

นั่นเป็นเพราะ URL ต้องไม่มีอักขระที่ไม่ใช่ภาษาละติน / ASCII

เบราว์เซอร์อาจแสดงอักขระที่ไม่ใช่ภาษาละตินแก่คุณ แต่เป็นเพียงคุณลักษณะส่วนติดต่อผู้ใช้

ตัวอย่างเช่นหากคุณไปที่ URL ของ Wiktionary นี้: URL ของhttps://en.wiktionary.org/wiki/わかもの#Japaneseเบราว์เซอร์ของคุณเข้ารหัสอักขระภาษาญี่ปุ่นเพื่อรับ URL จริงhttps://en.wiktionary.org/wiki/%E3%82%8F%E3%81%8B%E3%82%82%E3%81%AE#Japaneseจากนั้น URL จะถอดรหัสเมื่อแสดง URL เวอร์ชันที่มีเครื่องหมายเปอร์เซ็นต์คือ URL จริง

เช่นเดียวกันกับรหัสอักขระอื่น ๆ ที่ไม่ใช่ ASCII เช่นอาหรับ ถ้าคุณสร้างโพสต์กับกระสุนที่わかものแล้วบันทึกและตรวจสอบฐานข้อมูลที่คุณจะไม่เห็นคุณจะเห็นわかもの %e3%82%8f%e3%81%8b%e3%82%82%e3%81%aeในทำนองเดียวกัน UI จะแสดงอักขระภาษาญี่ปุ่น แต่ถ้าคุณคัดลอกลิงก์คุณจะได้รับเวอร์ชันที่เข้ารหัส

หากเราอัปเดตฐานข้อมูลและเปลี่ยนกระสุนของโพสต์わかものเป็นตอนนี้โพสต์นั้นไม่สามารถโหลดได้และเราได้รับ 404 นั่นเป็นเพราะกระสุนไม่ถูกต้องและไม่สามารถโหลด URL ที่ตรงกับบุ้งนั้นได้

ใช่ฉันต้องการอักขระที่ไม่ใช่ภาษาละตินเพื่อเข้ารหัสเป็น% xx

คุณต้องการurlencodeมันecho urlencode( $slug )