PHP

2012-01-27 5 views
5

में अजीब डैश चरित्र मेरे टेक्स्ट में एक अजीब डैश है, जिसे str_replace में नहीं मिला है।PHP

Sun: 10:00 – 3:00pm

मैं अगर पानी का छींटा यहां पर दिखाई देगा पता नहीं है .. लेकिन जब यह मेरी मेज में डाला जाता है, इसके साथ एक वर्ग बॉक्स की तरह है:

यहाँ एक उदाहरण है पात्र 0096

यह – जैसा दिखता है - स्रोत को देखते समय, कोई विशेष वर्ण नहीं है, केवल डैश।

str_replace('–', '', $var); 

उपरोक्त प्रतिस्थापन इसे पकड़ने के लिए प्रतीत नहीं होता है, क्या किसी और को इससे पहले इस समस्या का सामना करना पड़ा है?

+1

आपको हमें [base64_encode] (http://www.php.net/base64_encode) प्रारूप में स्ट्रिंग देना चाहिए, ताकि इसकी संरक्षित बाइनरी सुरक्षित हो। यह हमारे लिए चरित्र की पहचान करने के लिए ez बनाता है। – goat

+0

बस स्पष्ट पूछना लेकिन क्या आप str_replace के वापसी मूल्य को सहेज रहे हैं? अर्थात। '$ var = str_replace ('-', '', $ var); 'str_replace स्ट्रिंग पर सीधे संचालन नहीं करता है। – tangrs

+0

आपकी तालिका का उपयोग किस चरित्र सेट का उपयोग कर रहा है? –

उत्तर

12

यह en dash है। php में, सबसे पोर्टेबल तरह से प्राप्त करने के लिए यह है html_entity_decode साथ:

$endash = html_entity_decode('–', ENT_COMPAT, 'UTF-8'); 
echo str_replace($endash, '(en dash)', 'Sun: 10:00 – 3:00pm'); 

ध्यान दें कि यह केवल काम करता है अपनी वेबसाइट एन्कोडिंग UTF-8 और अपने संपादक एन्कोडिंग (या str_replace को तीसरा तर्क की एन्कोडिंग है अगर) भी है। यदि आप एक और एन्कोडिंग का उपयोग करते हैं (और आपको वेबसाइट और संपादक दोनों के लिए इसका उपयोग करना चाहिए), html_entity_decode के तीसरे पैरामीटर को इसके नाम से बदलें। "-"

0

एन - डैश हम
एम डैश है कि हम समय की जहां उपयोग सबसे अधिक उपयोग करने वाले रहे हैं देखने के अभ्यस्त हैं।
असल में, यह एक व्याकरण की बात है।

विकिपीडिया के बारे में पढ़ें: http://en.wikipedia.org/wiki/Dash

पर एक मैक (अमेरिका कीबोर्ड लेआउट के साथ) मैं इसे Alt + मार मिल -, एक ही के रूप में आप के लिए shift + _ के साथ _ मिल

आप की जरूरत नहीं है इसके लिए कोई विशेष प्रलोभन क्योंकि यह कुछ चीनी प्रतीक थे। यह एक वैध चरित्र है। इसे इस तरह से इलाज करें: str_replace('–', 'em dash');

1

एक विकल्प के लिए सुझाव दिया है, अगर अन्य उत्तर की तरह मेरे मामले में, यह मेरे लिए काम करता है, आप के लिए काम नहीं करते।

$title = "Hunting, Tactical & Outdoor Optics eCommerce Store ΓÇô $595,000 ΓÇö SOLD"; 
$title = str_replace(html_entity_decode('–', ENT_COMPAT, 'UTF-8'), '-', $title); 
$title = str_replace(html_entity_decode('—', ENT_COMPAT, 'UTF-8'), '-', $title); 
संबंधित मुद्दे

 संबंधित मुद्दे