|
|
|
| Всем привет, как можно обрезать символы такие как:
1 - длинное тире, думаю тут все понятно
2 - символ >>, он же, , но который при просмотре хтмл кода не дает свой код
делаю для авто перевода урла с кириллицы на латиницу, поэтому хочу учесть все возможные ненужные символы | |
|
|
|
|
|
|
|
для: TetRiska
(30.03.2011 в 16:49)
| | Хм... можно поступить следующим образом
<?php
$text = str_replace("—", "", $text);
$text = str_replace("»", "", $text);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(30.03.2011 в 17:11)
| | попробую позже, подскажи как в этот массив добавить \ слеш такой, проблема с кавычками возникает
$symbol = array(
"~"=>"","`"=>"","!"=>"","@"=>"",'"'=>"","#"=>"","№"=>"",
"$"=>"",";"=>"","%"=>"","^"=>"",":"=>"","&"=>"","?"=>"",
"*"=>"","("=>"",")"=>"","-"=>"","_"=>"","+"=>"","="=>"",
"|"=>"","["=>"","]"=>"","{"=>"","}"=>"","'"=>"",","=>"",
"."=>"","<"=>"",">"=>"","/"=>""
);
|
| |
|
|
|
|
|
|
|
для: TetRiska
(30.03.2011 в 18:10)
| | | |
|
|
|
|
|
|
|
для: z668
(30.03.2011 в 18:14)
| | вот писал ф-цию по переводу кириллицы в латиницу...можно ли ее улучшить + к этому же обрезать то, что я не смог:
function format_url($str){
if($str != ''){
$fixtext = '';
$nbsp = array(
"~"=>" ","`"=>" ","!"=>" ","@"=>" ",'"'=>" ","#"=>" ","№"=>" ",
"$"=>" ",";"=>" ","%"=>" ","^"=>" ",":"=>" ","&"=>" ","?"=>" ",
"*"=>" ","("=>" ",")"=>" ","-"=>" ","_"=>" ","+"=>" ","="=>" ",
"|"=>" ","["=>" ","]"=>" ","{"=>" ","}"=>" ","'"=>" ",","=>" ",
"."=>" ","<"=>" ",">"=>" ","/"=>" "
);
$str = strtr($str,$nbsp);
$trans_arr = explode(" ", stripslashes(trim(strip_tags($str))));
$symbol = array(
"~"=>"","`"=>"","!"=>"","@"=>"",'"'=>"","#"=>"","№"=>"",
"$"=>"",";"=>"","%"=>"","^"=>"",":"=>"","&"=>"","?"=>"",
"*"=>"","("=>"",")"=>"","-"=>"","_"=>"","+"=>"","="=>"",
"|"=>"","["=>"","]"=>"","{"=>"","}"=>"","'"=>"",","=>"",
"."=>"","<"=>"",">"=>"","/"=>""
);
for($i=0;$i<count($trans_arr);$i++){
if(strtr($trans_arr[$i],$symbol) != ''){
$clear[] = strtr($trans_arr[$i],$symbol);
}
}
$p = 0;
for($j=0;$j<count($clear);$j++){
$p++;
$add = ($p != count($clear))?"-":"";
if($clear[$j] != ""){
$fixtext .= $clear[$j].$add;
}
}
$translit = array(
"а"=>"a","б"=>"b","в"=>"v","г"=>"g","ґ"=>"g","д"=>"d",
"е"=>"e","є"=>"e","ё"=>"e","ж"=>"zh","з"=>"z","и"=>"i",
"і"=>"i","ї"=>"i","й"=>"i","к"=>"k","л"=>"l","м"=>"m","н"=>"n",
"о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t","у"=>"u",
"ф"=>"f","х"=>"h","ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch",
"ъ"=>"","ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya", "ей"=>"yei"
);
return strtr(mb_strtolower($fixtext,"UTF-8"),$translit);
}
}
|
если есть желание помочь довести до ума ф-цию, буду очень благодарен | |
|
|
|
|
|
|
|
для: TetRiska
(30.03.2011 в 18:18)
| | К сожалению сейчас времени нет, как будет постараюсь помочь. | |
|
|
|
|
|
|
|
для: z668
(30.03.2011 в 18:20)
| | спасибо, а пока сам постараюсь придумать более универсальный вариант | |
|
|
|
|
|
|
|
для: TetRiska
(30.03.2011 в 18:22)
| | Только что нашел на в справочнике, возможно поможет
<?php
// $document на выходе должен содержать HTML-документ.
// Необходимо удалить все HTML-теги, секции javascript,
// пробельные символы. Также необходимо заменить некоторые
// HTML-сущности на их эквивалент.
$search = array ("'<script[^>]*?>.*?</script>'si", // Вырезает javaScript
"'<[\/\!]*?[^<>]*?>'si", // Вырезает HTML-теги
"'([\r\n])[\s]+'", // Вырезает пробельные символы
"'&(quot|#34);'i", // Заменяет HTML-сущности
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(\d+);'e"); // интерпретировать как php-код
$replace = array ("",
"",
"\\1",
"\"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\\1)");
$text = preg_replace($search, $replace, $document);
?>
|
| |
|
|
|
|
|
|
|
для: z668
(30.03.2011 в 19:26)
| | не совсем то...мне нужно обрезать все символы а оставить чистый текст..пробовал так:
print preg_replace("|[^а-яА-Я1-9 ]|i", NULL, "fff/\ ааа68= яяявс12hello+_-)(*&^%$#@!~`«»—");
| хорошо, но обрезает инглишь буквы и не обрезает длинное тире и стрелочки...тогда сделал так:
print preg_replace("|[^а-яА-Я1-9a-zA-Z ]|i", NULL, "fff/\ ааа68= яяявс12hello+_-)(*&^%$#@!~`«»—");
| инглишь буквы оставляет, но мне остаток от nbsp ненужен в строке + по прежнему длинное тире и стрелочки есть....как бы такие символы удалять не прописывая огромный массив таких символов для уничтожения? | |
|
|
|
|
|
|
|
для: z668
(30.03.2011 в 19:26)
| | возникла идейка, а может мне написать массив из 3-х алфавитов (укр, ру и енг), после чего сверятся посимвольно? если не совпадает, то отбрасывать....предварительно нужно очистить от хтмл и применить ф-цию htmlspecialchars_decode которая переведет HTML-сущности в символы которые просто потом будут проигнорированные | |
|
|
|
|