PDA

View Full Version : حرفه ای: استخراج متن فارسی از یک string در php



kabootar_y
دوشنبه 10 شهریور 1393, 15:55 عصر
دوستان لطفا بگید در یک متن html که شامل بسیاری از کاراکترهای خاص مثل (« , ، . () ) و امثال این ها هست میخواهیم فقط کاراکترهای فارسی را جدا کنیم و بقیه حذف شوند.

با بعضی از توابع بعضی کلمه ها به صورت زیر در میان



خوردی�

میشه�نمیشه


لطفا یه راهی بگید که این مشکلات رو نداشته باشه.

hamidhassas
دوشنبه 10 شهریور 1393, 16:53 عصر
<?php
$str = htmlentities(str_replace(',','','آموزش پی اچ پی نمایش قسمتی از متن و پاراگراف'));
echo mb_substr($str, 0, 4, 'UTF-8');
?>



یا همینطور این



<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
// Output : Test paragraph. Other text echo '';
echo strip_tags($text, '<a>');
// Output : Test paragraph. LINK=[Other text]
?>


یا



echo strip_tags('<span id="xxxx">salam in <yyy><>ye &nbsp; matnn baraye test</span>');



یا


برخی موارد در PHP به آن نیاز پید می نمایید که تگ های خاصی از HTML را حذف نمایید که تابعی برای این کار در PHP وجود ندارد. تابع strip_tags نیز به این صورت عمل می نماید که تنها تگ های خاصی را که شما در پارامترهای آن تعریف می نمایید را اجازه نمایش به آن داده می شود. تابع PHP زیرا عکس strip_tags عمل می نماید و تگ هایی که شما مشخص می نمایید را از HTML حذف می نماید.




<?php
function strip_defined_tags($str, $tags, $stripContent = false)
{
$content = '';
if (!is_array($tags))
{
$tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags));
if(end($tags) == '') array_pop($tags);
{
foreach($tags as $tag)
{
if ($stripContent)
{
$content = '(.+|\s[^>]*>)|)';
$str = preg_replace('#|\s[^>]*>)'.$content.'#is', '', $str);
}
return $str;
}
}
}
}
?>