Стопит скрипт

SocMaster

Профессор
Регистрация
26 Июл 2011
Сообщения
211
Реакции
49
Вот так странная проблема...если в тексте присутствует   дальше текст не читается.
Вот скрипт
PHP:
$subjectenc = $_GET['subjectenc'];
    $messageenc = $_GET['messageenc'];
$arr_tags = explode(' ', $subjectenc);
$arr_tags1 = explode(' ', $messageenc);
$arr = array_merge($arr_tags,$arr_tags1);
$col = array_count_values($arr);

$str_tag = '';
foreach ($col as $word => $count) {
$words = dhtmlspecialchars(trim($word));


    if (dstrlen($words) >= 4 && $count >= 2  ) {
   
        $str_tag .= $words.',';
       
    }
}
$kws = preg_replace("/(.*).$/", "\\1", $str_tag);
Текст без этого проблема читается полностью, но как только доходит до пробела все! дальше текст не читает
Подскажите почему???
 
php может не понимает у тебя его, чем тебя обычный пробел не устраивает ???
 
PHP:
$subjectenc = $_GET['subjectenc'];
$messageenc = $_GET['messageenc'];

$subjectenc = preg_replace("/\&nbsp\;/i", " ", $subjectenc);
$messageenc = preg_replace("/\&nbsp\;/i", " ", $messageenc);

$arr_tags = explode(' ', $subjectenc);
$arr_tags1 = explode(' ', $messageenc);
$arr = array_merge($arr_tags,$arr_tags1);
$col = array_count_values($arr);

$str_tag = '';
foreach ($col as $word => $count) {
    $words = dhtmlspecialchars(trim($word));
    if (dstrlen($words) >= 4 && $count >= 2  ) {
        $str_tag .= $words.',';
    }
}
$kws = preg_replace("/(.*).$/", "\\1", $str_tag);
надеюсь ход мысли понятен ?
 
PHP:
$subjectenc = $_GET['subjectenc'];
$messageenc = $_GET['messageenc'];

$subjectenc = preg_replace("/\&nbsp\;/i", " ", $subjectenc);
$messageenc = preg_replace("/\&nbsp\;/i", " ", $messageenc);

$arr_tags = explode(' ', $subjectenc);
$arr_tags1 = explode(' ', $messageenc);
$arr = array_merge($arr_tags,$arr_tags1);
$col = array_count_values($arr);

$str_tag = '';
foreach ($col as $word => $count) {
    $words = dhtmlspecialchars(trim($word));
    if (dstrlen($words) >= 4 && $count >= 2  ) {
        $str_tag .= $words.',';
    }
}
$kws = preg_replace("/(.*).$/", "\\1", $str_tag);
надеюсь ход мысли понятен ?
Пробовал я так не катит. Я даже просто не могу вывести через echo GET данные если впереди стоит этот пробел:mad:
Вот передаю
messageenc= %20слово%20слово
И все messageenc просто не выводит содержимое на экран...будто пустая переменная
 
["messageenc"]=> string(0) "" ["nbsp;словоd_слово_ммммм_ммммм"]=> string(0) "" ["nbsp;_слово_слово"]=> string(0) "" }
Вот вывод GET
Что то не пойму почему так...
 
так амперсанд в get служит для разделения блоков переменная => значение.. т.о. "messageenc= %20слово%20слово" - это две переменные ("messageenc" и "nbsp;%20слово%20слово") с пустыми значениями.. т.е. всё правильно программа понимает..
 
так амперсанд в get служит для разделения блоков переменная => значение.. т.о. "messageenc= %20слово%20слово" - это две переменные ("messageenc" и "nbsp;%20слово%20слово") с пустыми значениями.. т.е. всё правильно программа понимает..
Да я понял...помогите поправить вот код на удалении амперсанда
Код:
function relatekw(subject, message) {
    if(isUndefined(subject) || subject == -1) {
        subject = $('subject').value;
        subject = subject.replace(/<\/?[^>]+>|\[\/?.+?\]|"/ig, "");
        subject = subject.replace(/\s{2,}/ig, ' ');
    }
    if(isUndefined(message) || message == -1) {
        message = getEditorContents();
        message = message.replace(/<\/?[^>]+>|\[\/?.+?\]|"/ig, "");
        message = message.replace(/\s{2,}/ig, ' ');
    }
    subject = (BROWSER.ie && document.charset == 'utf-8' ? encodeURIComponent(subject) : subject);
    message = (BROWSER.ie && document.charset == 'utf-8' ? encodeURIComponent(message) : message);
    message = message.replace(/&/ig, '', message).substr(0, 500);
   
    ajaxget('forum.php?mod=relatekw&subjectenc=' + subject + '&messageenc=' + message, 'tagselect');
}
 
Код:
replace( /&(\w{3,6};)/g, '~$1' )
ну а в бэкенде получившуюся псевдомнемонику (напр ~nbsp; ) превращаешь в нормальную (&nbsp; )..
 
Последнее редактирование:
Спасибо всем решил проблему путем нахождения функции отправки текста и правки на удаления этого пробела
 
А что за dhtmlspecialchars?
Спасибо всем решил проблему путем нахождения функции отправки текста и правки на удаления этого пробела
Вообще, его не удалять надо, а через Для просмотра ссылки Войди или Зарегистрируйся пропускать, и не выборочно (utf8|ie), а в любом случае... Вдруг в сообщении какой-нибудь D&G или R&B окажется?
 
Назад
Сверху