הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בעיה בהזנת תווים (https://hosts.co.il/forums/showthread.php?t=107597)

pcnet 03-09-14 19:50

בעיה בהזנת תווים
 
נוצרה לי בעיה בעת הזנת נתונים.

זה אומר שאם אני מזין כותרת בעברית ללא תווים אז זה נקלט.

אולם אם אני מזין לכותרגם תווים כגון: " ' אז זה פשוט מציג את הטקסט בכל מיני מילים מוזרות באנגלית.

ואת התווים שציינתי לעיל הוא מציג במילים הבאות amp quot.

אני יציין שהחיבור למסד מוגדר על UTF-8.

יכול להיות שהבעיה בקוד הבא.

PHP קוד:

<?php
/**
 * Smarty plugin
 * @package Smarty
 * @subpackage plugins
 * @author Manuel Polacek / Hitflip
 */


/**
 * Smarty regex_replace modifier plugin
 *
 * Type:     modifier<br>
 * Name:     substring
 * Purpose:  substring like in php
 * @param string
 * @return string
 */
function smarty_modifier_slug($title)
{

$slugged url_slug(
  
"$title"
  array(
    
'delimiter' => '-',
    
'limit' => 80,
    
'lowercase' => false
  
)
);

return 
$slugged;
}

?>

תודה לעוזרים.

ory 03-09-14 23:10

מניח שיש לך preg_replace איפשהו שדואג להחליף את התווים

pcnet 03-09-14 23:27

ציטוט:

נכתב במקור על ידי ory (פרסם 891261)
מניח שיש לך preg_replace איפשהו שדואג להחליף את התווים

תודה על התגובה.

אני מנסה להכניס בקוד הנוכחי את הפקודה הבאה preg_replace הבעייה שזה נותן לי שגיאה.

PHP קוד:

$slugged preg_replace('/[^%a-zA-z0-9א-ת_-]/'''$slugged); 


MAORBARI 04-09-14 07:05

ציטוט:

נכתב במקור על ידי pcnet (פרסם 891263)
תודה על התגובה.

אני מנסה להכניס בקוד הנוכחי את הפקודה הבאה preg_replace הבעייה שזה נותן לי שגיאה.

PHP קוד:

$slugged preg_replace('/[^%a-zA-z0-9א-ת_-]/'''$slugged); 


ומה היא השגיאה?
בטח שזה ARRAY ואתה לא יכול להשתמש בו כ STRING?

pcnet 04-09-14 10:26

ציטוט:

נכתב במקור על ידי MAORBARI (פרסם 891264)
ומה היא השגיאה?
בטח שזה ARRAY ואתה לא יכול להשתמש בו כ STRING?

התכוונתי שלא הופיעה לי האותיות בעברית, למרות שזה סודר, עדיין התוו " מופיע כך: amp_quot והתו ' מופיע כך 039.


'
"

לבינתים זה התווים ששמתי לב שעושים בעיות

שאר התווים עובדים בסדר

MAORBARI 05-09-14 10:34

ציטוט:

נכתב במקור על ידי pcnet (פרסם 891265)
התכוונתי שלא הופיעה לי האותיות בעברית, למרות שזה סודר, עדיין התוו " מופיע כך: amp_quot והתו ' מופיע כך 039.


'
"

לבינתים זה התווים ששמתי לב שעושים בעיות

שאר התווים עובדים בסדר

זה כי הפונקצייה שאתה משתמש בה כנראה מפעילה htmlspecialchars או htmlentities בעקיפין.. או שתנסה למצוא איפה זה ולמחוק, או שתעשה את הפעולה ההפוכה של זה. htmlspecialchars_decode/html_entity_decode

pcnet 07-09-14 10:57

ציטוט:

נכתב במקור על ידי MAORBARI (פרסם 891281)
זה כי הפונקצייה שאתה משתמש בה כנראה מפעילה htmlspecialchars או htmlentities בעקיפין.. או שתנסה למצוא איפה זה ולמחוק, או שתעשה את הפעולה ההפוכה של זה. htmlspecialchars_decode/html_entity_decode

תודה רבה עזרת לי מאוד.

פשוט הפונקצייה שהפעילה את הקידוד היה כתוב כך

PHP קוד:

$title htmlspecialchars($item->get_title(), ENT_QUOTES); 

והוספתי לה את מה שאמרת

PHP קוד:

$title htmlspecialchars_decode($item->get_title(), ENT_QUOTES); 

ושוב תודה רבה

MAORBARI 07-09-14 20:05

ציטוט:

נכתב במקור על ידי pcnet (פרסם 891292)
תודה רבה עזרת לי מאוד.

פשוט הפונקצייה שהפעילה את הקידוד היה כתוב כך

PHP קוד:

$title htmlspecialchars($item->get_title(), ENT_QUOTES); 

והוספתי לה את מה שאמרת

PHP קוד:

$title htmlspecialchars_decode($item->get_title(), ENT_QUOTES); 

ושוב תודה רבה

אני שמח שעזרתי לך, אבל אתה יכול לעשות פשוט ככה:
PHP קוד:

$title $item->get_title(); 

בלי פונקציות כלל וזה יספק לך את התוצאה רצויה.

pcnet 08-09-14 11:04

ציטוט:

נכתב במקור על ידי MAORBARI (פרסם 891296)
אני שמח שעזרתי לך, אבל אתה יכול לעשות פשוט ככה:
PHP קוד:

$title $item->get_title(); 

בלי פונקציות כלל וזה יספק לך את התוצאה רצויה.

ניסתי כמו שכתבת וזה חזר לשגיאות שהיו לפני.

אז החזרתי לאופציה הקודמת.

תודה רבה בכל מקרה


כל הזמנים הם GMT +2. הזמן כעת הוא 16:45.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ