Bonjour;

j'ai problème mais je sais pas si le problème au niveau de serveur IIS7 ou au niveau php 5.3 que j'ai utilise!
le problème lorsque ma chaîne de caractère se compose de deux langues différent dans le cas français + arabe avec le français ça marche aussi

Voici le code php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<?php
if (!function_exists('mb_str_word_count'))
{
    function mb_str_word_count($string, $format = 0, $charlist = '[]') {
        $string=trim($string);
        if(empty($string))
            $words = array();
        else
            $words = preg_split('~[^\p{L}\p{N}\']+~u',$string);
        switch ($format) {
            case 0:
                return count($words);
                break;
            case 1:
            case 2:
                return $words;
                break;
            default:
                return $words;
                break;
        }
    }
}
/* --- BEGIN PHP CODE --- */
$stopwords = "0,1,2,3,4,5,6,7,8,9,est,ce,pour,ces,se,par,entre,de,que,la,le,les,dans,des,qui,du,au,en,aux,et,able,about,above,according,accordingly,across,actually,after,afterwards,again,against,ain't,all,allow,allows,almost,alone,along,already,also,although,always,am,among,amongst,an,and,another,any,anybody,anyhow,anyone,anything,anyway,anyways,anywhere,apart,appear,appreciate,appropriate,are,aren't,around,as,aside,ask,asking,associated,at,available,away,awfully,be,became,because,become,becomes,becoming,been,before,beforehand,behind,being,believe,below,beside,besides,best,better,between,beyond,both,brief,but,by,c'mon,c's,came,can,can't,cannot,cant,cause,causes,certain,certainly,changes,clearly,co,com,come,comes,concerning,consequently,consider,considering,contain,containing,contains,corresponding,could,couldn't,course,currently,definitely,described,despite,did,didn't,different,do,does,doesn't,doing,don't,done,down,downwards,during,each,edu,eg,eight,either,else,elsewhere,enough,entirely,especially,et,etc,even,ever,every,everybody,everyone,everything,everywhere,ex,exactly,example,except,far,few,fifth,first,five,followed,following,follows,for,former,formerly,forth,four,from,further,furthermore,get,gets,getting,given,gives,go,goes,going,gone,got,gotten,greetings,had,hadn't,happens,hardly,has,hasn't,have,haven't,having,he,he's,hello,help,hence,her,here,here's,hereafter,hereby,herein,hereupon,hers,herself,hi,him,himself,his,hither,hopefully,how,howbeit,however,i'd,i'll,i'm,i've,ie,if,ignored,immediate,in,inasmuch,inc,indeed,indicate,indicated,indicates,inner,insofar,instead,into,inward,is,isn't,it,it'd,it'll,it's,its,itself,just,keep,keeps,kept,know,knows,known,last,lately,later,latter,latterly,least,less,lest,let,let's,like,liked,likely,little,look,looking,looks,ltd,mainly,many,may,maybe,me,mean,meanwhile,merely,might,more,moreover,most,mostly,much,must,my,myself,name,namely,nd,near,nearly,necessary,need,needs,neither,never,nevertheless,new,next,nine,no,nobody,non,none,noone,nor,normally,not,nothing,novel,now,nowhere,obviously,of,off,often,oh,ok,okay,old,on,once,one,ones,only,onto,or,other,others,otherwise,ought,our,ours,ourselves,out,outside,over,overall,own,particular,particularly,per,perhaps,placed,please,plus,possible,presumably,probably,provides,que,quite,qv,rather,rd,re,really,reasonably,regarding,regardless,regards,relatively,respectively,right,said,same,saw,say,saying,says,second,secondly,see,seeing,seem,seemed,seeming,seems,seen,self,selves,sensible,sent,serious,seriously,seven,several,shall,she,should,shouldn't,since,six,so,some,somebody,somehow,someone,something,sometime,sometimes,somewhat,somewhere,soon,sorry,specified,specify,specifying,still,sub,such,sup,sure,t's,take,taken,tell,tends,th,than,thank,thanks,thanx,that,that's,thats,the,their,theirs,them,themselves,then,thence,there,there's,thereafter,thereby,therefore,therein,theres,thereupon,these,they,they'd,they'll,they're,they've,think,third,this,thorough,thoroughly,those,though,three,through,throughout,thru,thus,to,together,too,took,toward,towards,tried,tries,truly,try,trying,twice,two,un,under,unfortunately,unless,unlikely,until,unto,up,upon,us,use,used,useful,uses,using,usually,value,various,very,via,viz,vs,want,wants,was,wasn't,way,we,we'd,we'll,we're,we've,welcome,well,went,were,weren't,what,what's,whatever,when,whence,whenever,where,where's,whereafter,whereas,whereby,wherein,whereupon,wherever,whether,which,while,whither,who,who's,whoever,whole,whom,whose,why,will,willing,wish,with,within,without,won't,wonder,would,would've,wouldn't,yes,yet,you,you'd,you'll,you're,you've,your,yours,yourself,yourselves,zero,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,??,???,???,??,??,???,??,?????,?,????,????,????,?????,???,????????,????,????????,???????,??????,????,????,????,???,????,????,??????,???,???,????,??,???,????,???,???,????,?????,?????,??????,???,???,???,?????,??,?????,???,???,?????,???,?????,?????,????,???,????,????,??,??,???,???,????,???,???,????,???,???,???,?????,???????,?????,????,???,??,????,?????,?????,????,???,??,?????,?????,??,???????,??????,??????,???????,???,??,??,??????,?????,???,?,????,????,????,??????,???,??,?????,????,???,????,??????,????????,??,?????,???,???,????,??,وايضا,و,ايضا,أسفل,أمام,أولئك,إلا,باستثناء,باسم,بالإضافة,بالخارج,بالقرب,بحسب,بدلا,بدون,بعد,بعيد,بقدر,بواسطة,حتى,ذلك,زائد,ضد,ضمن,طريق,عبر,عكس,غاية,قريبة,كلمات,كلمتين,كما,لكل,لكن,مامثل,مع,مقابل,منذ,نحو,هؤلاء,هذا,وكذلك,بجانب,بسبب,بين,خارج,خلال,عن,في,قبل,قرب,وراء,تحت,حول,داخل,إلى,على,فوق,إضافة,الامثله,الامر,اولا,بعد,بل,تاتي,تستدم,ثانيا,ضمير,عدا,عن,قائمة,كلأتي,لا,لاإضافة,لاعطاء,لتسمية,للتاكيد,ليس,ما,مع,نستخدم,نهاية,هذا,و,وفقط,ولكن,يعني,المثال,اما,او,بداية,سبيل,علي,مثلا,الجملة,بالاضافة,في,علاوة,على,ذلك,ايضا,من,أن,التي,أ,ب,ت,ث,ج,ح,خ,د,ذ,ر,ز,س,ش,ص,ض,ط,ظ,ع,غ,ف,ق,ك,ل,م,ن,ه,ة,و,ي,ا,٠,*,آ,ؤ,ئ,ء,إ,.,١,٢,٣,٤,٥,٦,٧,٨,٩,+,-,ان,مى,أو";
 
$stopwords = explode(",", $stopwords);
 
 
/* Builds an array of words with all stop words filtered out. (case-insensitive) */
 
function filter_stopwords($words, $stopwords) {
 
    foreach ($words as $pos => $word) {
        if (!in_array(strtolower($word), $stopwords, TRUE)) {
            $filtered_words[$pos] = $word;
        }
    }
 
    return $filtered_words;
 
}
 
 
/* Builds an array of words as keys and their frequency as the value. (case-insensitive) */
 
function word_freq($words) {
 
    $frequency_list = array();
 
    foreach ($words as $pos => $word) {
 
        $word = strtolower($word);
        if (array_key_exists($word, $frequency_list)) {
            ++$frequency_list[$word];
        }
        else {
            $frequency_list[$word] = 1;
        }
 
    }
 
    return $frequency_list;
 
}
 
 
/* Optional function to filter out words below a specific frequency. */
 
function freq_filter($words, $filter) {
 
    return array_filter(
                            $words,
                            function($v) use($filter) {
                                if ($v >= $filter) return $v;
                            }
                        );
 
}
 
 
/* Builds the word cloud and returns a string containing a div of the word cloud. */
 
function word_cloud($words, $div_size = 400) {
 
    $tags = 0;
    $cloud = "<div style=\"width: {$div_size}px\">";
 
    /* This word cloud generation algorithm was taken from the Wikipedia page on "word cloud"
       with some minor modifications to the implementation */
 
    /* Initialize some variables */
    $fmax = 96; /* Maximum font size */
    $fmin = 8; /* Minimum font size */
    $tmin = min($words); /* Frequency lower-bound */
    $tmax = max($words); /* Frequency upper-bound */
 
    foreach ($words as $word => $frequency) {
 
        if ($frequency > $tmin) {
            $font_size = floor(  ( $fmax * ($frequency - $tmin) ) / ( $tmax - $tmin )  );
            /* Define a color index based on the frequency of the word */
            $r = $g = 0; $b = floor( 255 * ($frequency / $tmax) );
            $color = '#' . sprintf('%02s', dechex($r)) . sprintf('%02s', dechex($g)) . sprintf('%02s', dechex($b));
        }
        else {
            $font_size = 0;
        }
 
        if ($font_size >= $fmin) {
            $cloud .= "<span style=\"font-size: {$font_size}px; color: $color;\"><a href='#'>$word</a></span> ";
            $tags++;
        }
 
    }
 
    $cloud .= "</div>";
 
    return array($cloud, $tags);
 
}
 
 
if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST' && $_POST['tags'] != '') {
 
    /* If the request verb is POST and the appropriate field is supplied and isn't
       empty, we will attempt to generate the word cloud. */
 
    $text = $_POST['tags']; /* Get the posted text */
 
    $words = mb_str_word_count($text, 1); /* Generate list of words */
    $word_count = count($words); /* Word count */
    $unique_words = count( array_unique($words) ); /* Unique word count */
 
    $words_filtered = filter_stopwords($words, $stopwords); /* Filter out stop words from the word list */
    $word_frequency = word_freq($words_filtered); /* Build a word frequency list */
    /* Optionally, you can filter out words below a specific frequency... Uncomment the line below to do so */
    /* $word_frequency = freq_filter($word_frequency, 3); */
 
    $word_c = word_cloud($word_frequency); /* Generate a word cloud and get number of tags */
    $word_cloud = $word_c[0]; /* The word cloud */
    $tags = $word_c[1]; /* The number of tags in the word cloud*/
 
}
else {
 
    /* Otherwise there is nothing to do... */
 
    $text = "";
 
    $word_count = $unique_words = $tags = 0;
    $word_cloud = null;
 
}
/* --- END PHP CODE --- */
 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tags</title>
</head>
<body>
		<form action="" method="post">
			 <textarea name="tags" rows="7" cols="140" class="input-long"><?php if (isset($_POST['tags'])) echo $_POST['tags'] ; ?></textarea>
<br />
			<input class="submit-green" name="ok" type="submit"   value="Tags" />
		</form>
<?php
$tags="";
if (isset($_POST['tags'])){
$tags=$_POST['tags'];
 
}
 
echo "<p>";
echo $word_cloud;
echo "</p>";
 
 ?>
</body>
</html>
J'ai testé le même code php avec un serveur xampp et ça marche tranquille je sais pas comment résoudre ce problème avec IIS7 !!