【问题标题】:how to concat two strings in php which are in persian如何在php中连接两个波斯语字符串
【发布时间】:2016-02-05 16:44:54
【问题描述】:

问题是我有以下字符串:

$content=$rows["content"];

我从数据库中检索到的。刺痛是波斯语的。
我想显示唯一的 150 个字符。所以我使用了:

$content=substr($content,0,150);

为了表明这仍然继续,我需要显示 3 个点:“...” 所以我做到了:

$content.='...';

当我通过 echo 显示这个字符串时,我添加的 3 个点将出现在最后一行的右侧。 但是波斯语是从右到左的,所以最后一行的左边要出现三个点。

我累了这一个两个,但这个也没有用

    $content =iconv(mb_detect_encoding($content, mb_detect_order(), true), "UTF-8", $content);
    $content=substr($content,0,150);
    $dot='...';
    $dot =iconv(mb_detect_encoding($dot, mb_detect_order(), true), "UTF-8", $dot);
    $content.=$dot;

【问题讨论】:

  • substr() 不支持 unicode,并将字符串视为简单的字节序列。你不能在不破坏文本的情况下在 unicode 字符串上使用它。这就是为什么有整个mb_*() 函数集,包括mb_substr()
  • 试试 $content = mb_substr($content,0,150,'utf-8')
  • @MarcB 感谢您的回答。但它还没有工作!
  • @Pooya 感谢您的回答,我按照您说的做了,但仍然无法正常工作,连接是正确的,还是我也必须对其进行某种更改?
  • 试试这个 $content.utf8_encode($dot) 看看是否有帮助

标签: php utf-8 concatenation persian


【解决方案1】:

我只是在我想以这种方式显示的文本周围添加了一个带有 rtl 的 p 标签。像这样:

            <p dir="rtl">';
            echo $content;
            echo "...";
            echo  '</p>';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 2022-11-16
    • 1970-01-01
    • 2012-01-17
    相关资源
    最近更新 更多