2012-03-04 10 views
11

मैंने सफलता के साथ PHP के साथ लाइन ब्रेक को हटाने के लिए एक फ़ंक्शन किया है, मैंने कोड को प्रतिस्थापित करने का प्रयास किया है और मुझे अभी भी इन लाइन ब्रेक मिलते हैं, मैं एक जेसन फ़ाइल बना सकता हूं और मैं नहीं कर सकता jsonp से jquery के साथ इसे पढ़ें क्योंकि इन लाइन ब्रेक की वजह से यह सब टूट जाता है। एक aferPHP कोई सफलता के साथ लाइन ब्रेक या सीआर एलएफ को हटाएं

<a 
href=\"http:\/\/example.com\/out\/content\/\" title=\"link to content website\"> 

लाइन ब्रेक:

function clean($text) 
{ 
$text = trim(preg_replace('/\s+/', ' ', $text)); 
$text = preg_replace("/(\r\n|\n|\r|\t)/i", '', $text); 
return $text; 
} 

जब मैं स्रोत को देखो, वहाँ कुछ लाइन ब्रेक सभी href, img और br में appening यह एक json_encode उत्पादन उदाहरण है। यह img src और br

एक ही रास्ता मैं निकाल सकते हैं करने के लिए hapenig है इन

$text = preg_replace("/\s/i", '', $text); 

साथ इसे तोड़ने लेकिन आप understant वहाँ कोई जगह नहीं सभी स्ट्रिंग में छोड़ दिया है कि और यह नहीं है कि हम क्या चाहते हैं।

+0

सभी के लिए है, लेकिन अब तक धन्यवाद के, इन समाधानों में से कोई भी काम किया। लेकिन आमतौर पर इन समाधानों में से अधिकांश को काम करना चाहिए, लेकिन मुझे समझ में नहीं आता कि मेरे मामले में यह – Gino

+0

क्यों नहीं है, इसे ठीक करने के लिए मुझे एकमात्र तरीका '$ allcontent = preg_replace ('/ Gino

+0

I hit the same and no solutions in this post worked for me. I found another similar post and this solution worked for me...hence posting it here: http://stackoverflow.com/a/3340510/405117 – Vikram

उत्तर

0

JSON विस्तार से उपयोग json_encode() और json_decode() JSON डी/क्रमबद्धता कार्यों को संभालने के लिए:

$myobj = array('foo' => 'bar', 'foz' => 'baz') 

$json_myobj = json_encode($myobj); 
echo $json_myobj; 

$myobj = json_decode($json_myobj); 
print_r($myobj); 
25

इस काम करता है बेहतर की जगह मेरे लिए:

= str_replace (array("\r\n", "\n", "\r"), ' ', $text) 
+0

As a note, in the case of e-mails and other MIME encodings, simply replacing '\r\n' (CRLF) with '\n' should work fine. –

0

शायद तुम से पाठ चरित्र चलने की कोशिश कर सकते चरित्र और प्रत्येक पर ord() पर कॉल करें, ताकि आप देख सकें कि क्या इन ब्रेक कैरेक्टर वास्तव में \r,\n एस हैं?

हाल ही में मुझे एक व्हाइटस्पेस के साथ एक ही समस्या मिली जो एएससीआईआई तालिका (ऑर्डर कोड 1 9 4 या कुछ) के अंदर भी एक गैर-ब्रेक करने योग्य स्थान साबित हुई।

आप रुचि रहे हैं, तो मेरी समाधान कोशिश करते हैं और फिल्टर टूट जाता है करने के लिए नहीं था, लेकिन क्या इतना की तरह, पाठ में होने की उम्मीद थी के अलावा सब कुछ फिल्टर करने के लिए:

$text = preg_replace("/[^ \na-zа-я0-9`~\[email protected]#\$%\^&\*\(\)_\+\-\=\[\]\{\}\\\|;\:'\",\.\/\<\>\?]+/ui", "", $text); 
+0

hi Tony, this did nothing for me – Gino

1

कैसे इस बारे में:

function clean($text) 
{ 
    $parts = explode(' ', $text); 
    foreach ($parts as $key => $value) 
     $parts[$key] = preg_replace('/\s/', ' ', $value); 
    return implode(' ', $parts); 
} 

वास्तव में, यदि इस तरह JSON फ़ाइल की सफाई करने के बजाय, आप इसे बनाने के लिए json_encode का उपयोग कर सकते हैं, तो आप इस समस्या को पिछले चरण में छुटकारा पायेंगे।

+0

Oops, the original code had a big mistake. I have edited right now... –

+0

not working, i don't understand why with all these replace code my json output give me 14 line instead of one. my json output work on many domains and many host, but for this domain (Wordpress website) it give me line break – Gino

0

एक विधि का उपयोग मैं echo str_replace(array('\r\n', '\r', '\n', '\t'), array('\\r\\n', '\\r', '\\n', '\\t'), $text);

क्या करता है कि आप क्या पात्रों पाठ में टूट जाता है उत्पन्न कर रहे हैं देखते हैं, और उन्हें उचित रूप से बदलने के लिए अनुमति देता है। उदाहरण के लिए, यदि आपके पास इस कोड का उपयोग करते समय "\ n" अपना टेक्स्ट तोड़ना है, तो यह उसके स्थान पर "\ n" प्रदर्शित करेगा। उदाहरण:

<a 
href=\"http:\/\/example.com\/out\/content\/\" title=\"link to content website\"> 

बन जाएगा:

<a\n href=\"http:\/\/example.com\/out\/content\/\" title=\"link to content website\"> 

स्वाभाविक रूप से, वहाँ है कि इस्तेमाल किया जा सकता अन्य तोड़ने पात्रों की एक बड़ी राशि है, लेकिन \ r \ n \ r \ n और \ t हैं सबसे अधिक इस्तेमाल किया जाने वाला।

+0

it's crazy but nothing apear. by the way, the json_encode is called this way 'echo $_GET['jsoncallback'].'('.json_encode(array('posts' => $ पोस्ट))।') '; ' – Gino

1

कैसे निम्नलिखित

function clean($text) 
{ 
    return trim(preg_replace("/(\s*[\r\n]+\s*|\s+)/", ' ', $text)); 
} 

के बारे में पहले भाग \s*[\r\n]+\s* किसी भी पंक्ति विराम का स्थान ले लेगा, यह रिक्त स्थान प्रमुख है और यह सिर्फ एक अंतरिक्ष में रिक्त स्थान पीछा कर रहा है।

दूसरा भाग \s+ रिक्त स्थान को एक स्थान में छोटा कर देगा।

तो trim() अग्रणी/पूंछ की जगह को हटा देता है।

0
function clean($text) 
{ 
    return trim(preg_replace('/\\\\r|\\\\n|\\\\t/i', ' ', $text)); 
} 

ठीक काम करता है।

0

आप LFS गोपनीय रिपोर्ट को हटाने और रखने के लिए चाहते हैं, यह वास्तव में बहुत सरल (सिर्फ सामान्य ज्ञान) है:

$text = str_replace("\r", "", $text); 
संबंधित मुद्दे