3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php ini_set('mbstring.substitute_character', 'none'); $s = <<<EOT Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget suscipit leo. Curabitur a sagittis ipsum. Vivamus adipiscing auctor nunc. Nulla luctus tellus sed diam ultricies, ut congue risus mollis. Proin at lobortis tortor. Aenean pulvinar velit sed lectus euismod ornare. Pellentesque euismod suscipit laoreet. Sed id ultricies erat. Duis vitae magna quis leo blandit sodales. In vel tellus ipsum. Aenean ut diam in quam pretium ultrices. Curabitur porttitor, felis a dictum dictum, sapien lacus interdum nunc, ac convallis arcu quam rutrum ante. Cras magna purus, lobortis varius libero vitae, consectetur tincidunt nibh. In tortor mauris, lacinia quis ligula eu, dapibus eleifend enim. Vivamus ac est at ipsum porta adipiscing id sed justo. Maecenas vehicula, nisl dapibus facilisis lacinia, sem quam interdum odio, ut blandit augue turpis a justo. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur in volutpat tortor. Donec non justo turpis. Sed hendrerit velit eget fermentum porta. Suspendisse viverra diam dui, ac imperdiet massa laoreet eu. Phasellus feugiat risus at nisi elementum, ac aliquet erat sollicitudin. Phasellus luctus scelerisque lobortis. Cras sit amet felis eleifend, blandit est ut, viverra diam. Ut mollis vulputate tincidunt. Donec sagittis enim id nibh iaculis ultricies. Pellentesque lacinia massa mi, ac imperdiet massa lacinia nec. Nullam posuere congue elit, eget euismod eros malesuada id. Donec iaculis turpis libero, sed tincidunt turpis pulvinar sed. Etiam dignissim a risus et euismod. Duis mattis consequat tempus. Aenean scelerisque magna vitae placerat ultrices. Sed feugiat dolor est, eget aliquam lorem vestibulum ac. Vestibulum porttitor metus vitae accumsan porttitor. Sed blandit ullamcorper suscipit. Quisque in mi et orci faucibus congue. Praesent ligula magna, pretium vel tempor a, tempor adipiscing purus. Mauris suscipit vulputate mauris, ut gravida nisl tincidunt non. Ut vel rhoncus eros. Donec vehicula eros in porta gravida. Curabitur tincidunt nulla nec euismod sagittis. Etiam ultricies risus et urna rutrum venenatis. Donec tristique, quam quis condimentum iaculis, dolor nisi commodo est, sit amet volutpat erat odio sit amet ligula. Nulla ut nisl fringilla, scelerisque nunc dapibus, sodales metus. Sed nec consectetur eros. Suspendisse turpis ligula, malesuada eu quam et, venenatis lobortis nibh. Aenean vel sapien non turpis sagittis feugiat quis id orci. Quisque leo libero, sagittis sed venenatis in, dignissim et lectus. Sed rutrum tristique tortor, at consequat dui semper ut. Mauris non mauris nisi. Vestibulum quis aliquam justo. Donec vel justo leo. Quisque hendrerit, metus id semper accumsan, arcu massa ultricies metus, eget egestas lorem urna ac diam. Nunc sapien nulla, tempus hendrerit eros et, egestas tempus erat. Curabitur molestie lectus leo, non varius ligula dapibus in. Etiam a porta enim. Fusce enim neque, facilisis ac felis id, pretium adipiscing mauris. In id tellus rutrum, pellentesque dolor at, ornare eros. Maecenas fermentum orci sit amet arcu porta, in auctor risus placerat. Sed dolor ligula, bibendum tincidunt risus nec, feugiat adipiscing elit. Donec at nunc facilisis elit consectetur molestie. Pellentesque quis mauris laoreet, ullamcorper lorem sed, laoreet nibh. Maecenas feugiat egestas mi porttitor consequat. Mauris dictum mollis dignissim. Vestibulum adipiscing dui sit amet magna mattis, a rutrum nisi ultrices. Sed ac suscipit odio. Integer in enim non erat iaculis ultricies. Duis non consequat ipsum, in varius nunc. Nulla sed pharetra tellus. Quisque molestie ultrices interdum. Phasellus at nibh id sapien eleifend dignissim. Donec vitae cursus enim. Pellentesque quis tempor est. Praesent sit amet leo eleifend, varius est at, commodo massa. Aliquam eu leo auctor lectus posuere semper. Fusce bibendum nibh eu libero euismod sagittis. Aliquam erat volutpat. Nulla sagittis diam et pellentesque congue. Fusce blandit tellus in mauris elementum, at porttitor nunc pulvinar. Mauris suscipit sed lacus et consectetur. Aliquam congue sed libero aliquam luctus. In congue pretium ultricies. Ut eget velit pharetra, faucibus purus sit amet, aliquet elit. Donec tortor ante, imperdiet a metus eget, ultrices dictum magna. Duis vitae est in odio hendrerit elementum auctor ultricies arcu. Nullam sollicitudin sollicitudin est, non accumsan nunc viverra gravida. Integer fermentum condimentum dui, vel imperdiet tellus tempor non. Ut sit amet tortor quis orci consequat eleifend. Quisque ac arcu blandit, dignissim nibh sed, placerat arcu. Nunc eleifend ultricies orci et condimentum. Curabitur ut hendrerit velit. Aliquam semper non ipsum eu scelerisque. Nullam sodales ligula sit amet sem volutpat venenatis. Nam euismod urna sem, vel bibendum tortor tempus faucibus. Aliquam nec lacus vehicula, accumsan purus vel, facilisis nunc. Sed nec neque ut justo sagittis tincidunt eu sollicitudin nisi. Donec molestie magna vel consectetur vulputate. Etiam sit amet sem iaculis augue faucibus feugiat. In a quam a lorem convallis aliquam. Pellentesque aliquam lacus eu risus semper vulputate. Nunc quis congue sem. Suspendisse magna magna, semper pretium cursus eget, consequat nec enim. Aenean blandit elit et pellentesque sodales. Sed tempus non risus ut placerat. Suspendisse nunc eros, porta vitae fringilla a, condimentum in nisi. Integer at rhoncus libero. Maecenas sed eleifend augue. Donec mattis, risus sed elementum eleifend, quam felis accumsan ante, sed malesuada nisl risus non massa. Vestibulum quis turpis elementum, imperdiet libero vitae, porttitor risus. Suspendisse venenatis nisl id odio tempor lobortis. Aliquam eget urna varius, bibendum erat vitae, gravida lorem. Suspendisse in dolor aliquam, mollis turpis ut, volutpat lorem. Vestibulum pulvinar pretium tempus. Ut tempus dolor sem. Pellentesque aliquam at nisl eu tincidunt. Etiam fermentum, lectus id posuere accumsan, lorem sapien rutrum justo, eget egestas ante dui eu dolor. Ut egestas imperdiet nisl, sit amet fermentum turpis fermentum nec. Proin tempor gravida felis, et ornare libero rhoncus et. Cras elementum eros nunc, vel volutpat tellus luctus eget. Donec eget mollis tellus. Mauris eu porttitor felis. Aenean vel nibh malesuada, dapibus sem sit amet, blandit lacus. Curabitur commodo urna dui, dictum euismod nunc vulputate a. Phasellus in pretium enim. Ut mollis mi ante, pretium viverra tellus vestibulum ac. Phasellus eleifend dolor ultricies, eleifend nunc id, dignissim mi. Maecenas id mauris eu augue lacinia luctus dapibus vel enim. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla interdum ante nulla, non placerat eros facilisis nec. Ut dictum porta velit, eu dignissim ipsum egestas vel. Suspendisse tellus lorem, rutrum id rhoncus eget, dignissim interdum magna. Integer blandit quis magna ut sagittis. Suspendisse lorem nibh, consequat bibendum ligula eleifend, sodales varius libero. Duis ultrices lacus dui, ac congue enim consectetur eget. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nunc tempor ac elit ac rhoncus. Suspendisse potenti. Duis at congue lacus. Maecenas odio dui, cursus sit amet porta rhoncus, egestas vestibulum turpis. Curabitur vulputate ullamcorper porta. In consequat, urna at pharetra hendrerit, leo mauris sodales nisl, et suscipit enim nunc cursus turpis. Aliquam velit quam, faucibus quis ornare vel, gravida nec velit. Nunc sed enim iaculis, posuere nisl eget, euismod metus. Nulla ipsum sem, sagittis nec malesuada nec, dapibus vitae dolor. Nunc auctor tellus consectetur augue dignissim dictum. Morbi consectetur pulvinar purus eu posuere. Praesent ultricies eget metus eu mattis. Integer tincidunt in est non iaculis. Aliquam commodo ornare tempor. Morbi sit amet purus mi. Vivamus eu ultrices nibh, sed adipiscing lorem. Nunc eleifend neque eu mauris consectetur, vitae egestas neque pulvinar. Phasellus at semper lacus. Maecenas convallis adipiscing orci, quis lobortis mauris fringilla a. Duis sit amet velit sit amet sapien lobortis vehicula. Aliquam condimentum tempus urna vitae laoreet. Mauris id suscipit turpis. Mauris quis tristique massa. Donec aliquet erat sed risus commodo blandit. Donec aliquet est non velit rutrum, in sollicitudin est facilisis. Proin fermentum dolor sem, in viverra lorem rutrum non. Mauris ut imperdiet magna, id iaculis metus. Sed dolor odio, hendrerit sit amet ornare id, tincidunt porta orci. Vestibulum purus sem, sollicitudin vitae tincidunt vitae, egestas vitae tortor. Quisque eget elit nec turpis suscipit lobortis. Duis fringilla, lectus in cursus commodo, nunc turpis vulputate lorem, eu mattis purus dui sed erat. Morbi quis ligula dolor. Vestibulum ut nisl eget augue vulputate tempus. Etiam pellentesque orci non ipsum interdum, quis bibendum mi pellentesque. Ut augue eros, tristique id tellus vitae, fermentum dignissim ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada quam quam, nec ullamcorper sapien feugiat id. Curabitur mattis ligula quam, ut imperdiet libero tristique sed. Vivamus tincidunt libero eu metus feugiat, a pharetra felis tempor. Donec a porttitor magna, id dignissim justo. Aenean varius nunc ac dignissim scelerisque. Curabitur dapibus id turpis at sodales. Phasellus at dui pellentesque, accumsan libero ut, commodo quam. Pellentesque et erat sodales, rutrum diam nec, aliquam augue. Maecenas eget dolor viverra, semper ligula in, blandit enim. Aliquam dui mi, feugiat vitae ipsum non, sollicitudin vehicula purus. Cras varius vitae diam vitae lacinia. Nullam dignissim dapibus urna ac scelerisque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nullam elementum lacus erat, eu bibendum nisi porttitor a. Praesent ac convallis nisl. Vivamus nec erat eget magna molestie pellentesque nec eget nisi. Suspendisse potenti. Curabitur fringilla augue ut velit ultricies pharetra. Praesent molestie, ligula non euismod luctus, ipsum sem sagittis quam, eget dictum mauris ligula quis dui. Duis consequat at nisi non posuere. Ut sed egestas tellus. Donec id lorem vel lectus pulvinar faucibus. Nulla quis facilisis lorem. Proin sem nulla, feugiat et ullamcorper sed, mattis eu tortor. Nulla ac sapien eget lectus tempus scelerisque ut nec nunc. Mauris eget dolor nec metus congue semper. Nunc dignissim diam ac dapibus pretium. Aenean tristique odio non hendrerit vehicula. Morbi commodo ipsum ut est tincidunt placerat. Nullam justo dui, tristique eget tincidunt nec, eleifend sit amet libero. Suspendisse feugiat mi libero, non pulvinar elit commodo id. Vestibulum ultrices quam accumsan, mattis nibh non, aliquam ligula. Vivamus et tincidunt ligula, sit amet convallis sapien. Donec sit amet velit aliquam, aliquam sapien non, lobortis velit. Nullam hendrerit egestas neque, ut auctor leo ultrices nec. Sed luctus erat erat, sed dictum lacus posuere luctus. Morbi tellus ipsum, euismod quis diam sit amet, aliquam vestibulum risus. Aliquam nec est vel mi blandit lobortis. Pellentesque justo felis, cursus nec odio in, molestie venenatis mauris. Aliquam ac consectetur nunc. Donec sagittis felis non facilisis tincidunt. Proin mi ipsum, sollicitudin non varius sit amet, convallis et ipsum. Sed sagittis, nulla ut consectetur lobortis, elit enim lacinia justo, ac varius erat lectus nec dui. Vestibulum consequat pulvinar iaculis. Mauris vulputate elit id purus condimentum, ac eleifend urna vehicula. Donec ut lacus at ligula aliquet egestas. Vivamus purus est, ultrices vel arcu eget, egestas dapibus purus. Donec adipiscing sodales convallis. Maecenas blandit tellus eu fringilla fringilla. In congue eleifend magna, ut posuere orci vulputate eget. Etiam laoreet dolor et vestibulum consectetur. Integer eu lectus aliquet, aliquet lorem eget, faucibus metus. Suspendisse potenti. In hac habitasse platea dictumst. Duis interdum elit a orci ultricies malesuada. Donec aliquet elit quis posuere laoreet. Etiam vel rhoncus mauris. Nullam nec quam in felis rhoncus bibendum non non tellus. Quisque ultricies ligula quis dui iaculis faucibus. Morbi euismod condimentum rutrum. Praesent ut ullamcorper ligula, sit amet vestibulum nisl. Curabitur interdum pharetra quam, ac fringilla ante facilisis non. Morbi non diam ligula. In lectus mauris, adipiscing nec lorem ac, ultrices elementum nunc. Nulla fringilla mauris ac risus hendrerit lacinia. In tempor feugiat lacus eget vestibulum. Sed et fringilla nunc. Duis quis bibendum justo, et adipiscing odio. Vestibulum vel auctor lorem, ut porta elit. Nullam placerat hendrerit dictum. Phasellus scelerisque pharetra convallis. Praesent eget lacus ut orci facilisis placerat et in sapien. Sed feugiat eros ac lorem rhoncus, at tempor libero sodales. Nunc pellentesque purus sed libero posuere pharetra. Aliquam sed placerat massa, non dictum ante. Pellentesque consequat nunc at diam venenatis fringilla. Curabitur a magna tellus. Nullam sed nisl tempor, tempus mi non, viverra nisl. Integer ut ante in nibh pharetra laoreet in sed erat. Nulla viverra, lacus sed venenatis blandit, enim tortor gravida elit, at sollicitudin leo lacus nec orci. Mauris vitae venenatis mi, in viverra est. Proin pharetra, ligula id hendrerit semper, lacus purus aliquet quam, sit amet cursus arcu lorem sed lorem. Pellentesque feugiat cursus mi ac gravida. Aenean in leo tortor. Nullam vehicula, nisi quis pretium molestie, ligula erat suscipit neque, vitae posuere mi mi non mauris. Vivamus et urna turpis. Proin commodo nunc velit. Fusce mollis odio at sagittis volutpat. Nullam id suscipit nibh, dapibus ultricies lorem. Nullam tempor augue massa, elementum pulvinar magna mollis a. Vivamus quis turpis odio. Nunc rutrum, augue id fermentum congue, risus turpis aliquam sapien, nec dictum nibh turpis eu felis. Quisque imperdiet pretium posuere. Vestibulum bibendum dui eros, sit amet commodo tortor iaculis commodo. Duis cursus purus sed nunc mollis tempor. Sed scelerisque nunc vel lorem ornare, facilisis tincidunt nunc imperdiet. In ac metus bibendum, tincidunt diam et, volutpat lorem. Vestibulum et felis at magna consequat imperdiet. Sed eu molestie orci, semper egestas velit. Duis convallis suscipit augue ac adipiscing. Vivamus metus enim, consectetur at lorem vitae, suscipit placerat ante. Proin ultricies, nibh tristique tincidunt lobortis, tellus enim porta quam, in laoreet lectus enim ut mi. Suspendisse enim mi, elementum et nunc sit amet, porttitor bibendum orci. Aenean mi ipsum, feugiat eu lectus eget, rutrum pulvinar diam. Mauris viverra tellus quis neque dapibus sollicitudin. Duis a neque at purus laoreet pellentesque ac ut leo. Maecenas tincidunt lorem sit amet tellus sodales fringilla non id quam. In posuere ut lacus non congue. Cras lorem lectus, varius vitae tempor at, elementum eget lorem. Donec aliquam congue tortor, id vulputate tellus hendrerit id. Nunc eu tempor eros. Mauris laoreet nisl a laoreet aliquet. Nulla non bibendum erat. Proin vestibulum, mauris ut rutrum venenatis, elit metus dignissim nunc, at tincidunt quam massa eget est. Vivamus et lectus pharetra, pellentesque nunc eget, laoreet magna. Ut vitae nisi nulla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nullam vestibulum nisl at est ultrices, imperdiet pellentesque dolor rhoncus. Ut ut augue dapibus, sagittis est eu, egestas metus. Phasellus eget mauris sed elit consequat commodo vel a nibh. Ut in viverra diam. Phasellus convallis, justo vel ornare tincidunt, felis est congue nisl, ut tristique neque lorem non dolor. Nulla facilisi. Fusce eros ipsum, molestie eu ligula non, fermentum volutpat ligula. Suspendisse potenti. Mauris in diam euismod ipsum ultrices adipiscing id id purus. Praesent iaculis arcu eget pulvinar egestas. Nulla auctor justo id nulla commodo gravida. Maecenas quis gravida nunc. In hac habitasse platea dictumst. Ut eget dapibus est. Sed at tellus sem. Mauris sem urna, auctor sit amet aliquam consequat, suscipit et justo. Aenean euismod velit vel est dignissim pharetra vel ac urna. Integer et urna at neque auctor euismod nec eu sapien. Vivamus consequat euismod nibh, et scelerisque enim laoreet ac. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin congue viverra urna vel congue. Integer tempor enim et mauris mollis euismod. Suspendisse dignissim pharetra turpis, vel ornare urna sodales sit amet. Etiam dapibus mi eget mattis vehicula. Cras rutrum posuere vehicula. Ut sit amet dignissim neque. Aliquam accumsan massa quis quam ornare vestibulum. Sed imperdiet vestibulum libero, a lacinia enim mollis ac. Nunc dolor dui, malesuada non rhoncus quis, egestas eu turpis. Sed lobortis tempus leo, id ultrices sem elementum sit amet. Pellentesque purus justo, porttitor a velit ultricies, consectetur aliquet nulla. Suspendisse id magna non quam lacinia ullamcorper viverra at lectus. Etiam rutrum dapibus neque, sit amet consectetur leo ultrices nec. Proin ac ornare ante, id congue nibh. Sed rutrum, tortor eu tempor mattis, nulla dui fermentum libero, vitae commodo lacus purus at leo. Donec nunc augue, iaculis sodales semper at, egestas placerat massa. Proin sodales elementum posuere. Aenean in ultrices lorem, sed eleifend erat. Ut quis ligula at urna interdum ultrices. Sed posuere tellus ligula, eu mollis dui commodo scelerisque. Suspendisse semper magna et convallis tempor. Fusce consectetur imperdiet sem a ultrices. Mauris aliquam viverra pretium. Nulla facilisi. In non mi ipsum. Quisque sit amet urna non sem accumsan imperdiet. Nam quis purus dui. Praesent cursus tempus nunc, at posuere augue pretium non. Ut suscipit sollicitudin semper. Donec vitae nisl sodales, iaculis sem ac, tristique ipsum. Morbi at nisl eros. Curabitur a ipsum nisi. Pellentesque eu urna ultrices, iaculis mauris vel, condimentum odio. Proin et pulvinar massa, et mollis massa. Sed sapien turpis, commodo id tempus sed, vehicula sit amet dolor. Donec cursus lorem ac venenatis porta. Vestibulum vitae pharetra velit. In et consectetur lorem, in faucibus dui. Aliquam eu sagittis odio. Morbi vitae magna justo. Etiam lobortis ipsum in suscipit sollicitudin. Quisque ullamcorper quam nec consectetur feugiat. Nunc ac velit at ipsum faucibus placerat. Donec eros ante, scelerisque a lorem quis, egestas ornare nibh. Nullam commodo tincidunt ante. Aliquam erat volutpat. Pellentesque ultrices ligula posuere ante venenatis tincidunt. Aliquam varius a enim quis vulputate. In hac habitasse platea dictumst. Aenean eu leo sed nibh scelerisque dapibus. Mauris fringilla magna et orci malesuada placerat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aenean pulvinar dolor quis leo porta elementum. Phasellus malesuada ut orci ut luctus. Vivamus tincidunt tempus mi, ac hendrerit sapien feugiat ac. Sed turpis nisl, mattis et consectetur nec, viverra id nisl. Morbi turpis lacus, sollicitudin sit amet mattis ac, sagittis id mauris. Duis ut tellus malesuada, fringilla metus at, egestas ante. Ut ullamcorper arcu eget felis posuere ultricies. Cras in mi ac arcu congue lacinia. Sed faucibus venenatis ipsum nec iaculis. Cras cursus nunc non tempor malesuada. Sed nec orci a erat laoreet auctor ac non est. Nam mattis vulputate sodales. Suspendisse consectetur, nisi nec dapibus egestas, massa diam dapibus dui, a vestibulum leo arcu quis enim. Vivamus ac ipsum id quam condimentum tempor. Aenean rhoncus dolor ut nisl egestas, ut convallis augue vulputate. Morbi sed dictum felis, in tincidunt nunc. Proin ac dui sed dui dapibus dapibus eget quis enim. Maecenas sem tortor, bibendum id velit non, rhoncus suscipit dui. Suspendisse ut purus nisi. Nam cursus lacus molestie urna feugiat dignissim non eget tortor. Pellentesque venenatis leo id mauris ultricies dapibus. Aliquam dapibus tristique urna non fermentum. Nullam condimentum lectus sed mollis sagittis. Phasellus fringilla et nunc vel iaculis. Phasellus consequat laoreet magna in malesuada. Sed ac sapien sit amet massa adipiscing auctor. Proin feugiat nisl ipsum, vitae congue tortor pellentesque in. Nam sem arcu, condimentum nec sagittis vel, dignissim id lacus. Cras eget nibh nec risus pretium molestie. Aenean in consectetur risus. Sed cursus molestie urna a rutrum. Donec tristique tincidunt placerat. In neque justo, accumsan eu elit sed, commodo commodo neque. In ultricies mauris tempus, malesuada diam id, luctus neque. Integer molestie, velit vitae elementum vulputate, odio nibh faucibus dolor, et ullamcorper risus neque ut eros. Donec auctor neque metus, eget tincidunt ante faucibus nec. Suspendisse id ullamcorper justo. Suspendisse ac congue ipsum, ornare volutpat massa. Fusce nec enim vitae nulla imperdiet eleifend. Suspendisse sodales pellentesque risus, vel volutpat mi. Quisque in sollicitudin nulla, ac euismod nulla. Cras elementum magna id convallis accumsan. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sit amet lobortis leo. Nunc malesuada, eros vitae interdum ornare, lorem sem condimentum dui, quis dictum felis lectus et orci. Ut risus odio, lacinia vitae mi feugiat, lobortis lobortis dui. Donec et volutpat mi. Pellentesque eu eleifend ante, vitae consequat dolor. Aenean consectetur congue neque, sed auctor odio hendrerit eget. Nunc vestibulum elit ut odio eleifend sagittis. Phasellus eget sapien porta, tristique lacus eu, imperdiet nisi. Morbi sit amet porttitor sapien, at posuere sem. Curabitur feugiat magna vel arcu vehicula, at commodo urna imperdiet. Sed vel nulla sem. Phasellus faucibus ligula quis leo tristique porta. Sed bibendum lacus placerat, eleifend leo a, luctus turpis. Mauris nulla justo, malesuada interdum convallis sit amet, dictum scelerisque dui. Cras gravida tristique sapien sed vestibulum. Ut mattis, ante in varius venenatis, augue est hendrerit ante, in vehicula mi mauris sit amet justo. Maecenas congue semper bibendum. Aenean posuere mattis condimentum. Donec eu iaculis eros. Proin aliquam porta quam, id feugiat turpis accumsan at. Cras quis lorem mi. Vestibulum luctus malesuada rutrum. Fusce tempus non enim vitae ornare. Aliquam consectetur, diam id varius dapibus, magna magna rhoncus velit, id vulputate massa sem eget eros. In eu turpis leo. Integer ante risus, molestie ac porttitor sed, ullamcorper a mi. Phasellus bibendum, magna mollis egestas fringilla, eros eros vulputate mauris, ac aliquet urna neque quis lacus. Ut a luctus sem, hendrerit dictum est. Quisque ac interdum dolor, nec mollis dui. Sed eu massa nisl. Donec id venenatis magna, et ullamcorper sapien. Sed ornare molestie tristique. Phasellus nulla elit, lacinia nec sodales sit amet, molestie vel lacus. Sed volutpat scelerisque nulla quis euismod. Vestibulum porttitor urna ut magna posuere, et ullamcorper turpis elementum. Aliquam pharetra egestas arcu ut consectetur. Praesent porta lorem orci. Proin enim nibh, fermentum facilisis lacinia in, lacinia ac justo. Quisque eu egestas ligula, at rhoncus augue. Curabitur et dapibus magna, in tincidunt enim. Nam sit amet commodo augue. Donec euismod, enim id gravida rhoncus, metus nunc dictum lacus, vel tempus libero velit id magna. Vivamus venenatis orci sit amet mi aliquet tincidunt. Vestibulum nibh nibh, sagittis et tempor at, feugiat sit amet ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent eros magna, condimentum quis gravida a, posuere tincidunt velit. Mauris consequat magna id adipiscing elementum. Nunc sit amet sapien quis massa malesuada feugiat vel ut nunc. Phasellus at eros ullamcorper, interdum velit id, tempor nulla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Nunc varius, massa et laoreet tincidunt, turpis urna porta turpis, vitae tempor magna purus non urna. Praesent elementum, nunc pellentesque consectetur tincidunt, augue lacus lacinia dolor, in mattis lacus felis suscipit enim. Praesent rutrum mauris ut nisi pulvinar, eget ultrices tellus mattis. Donec luctus felis ligula, non molestie justo elementum at. Ut semper auctor tempus. Sed mi enim, molestie eget nulla eget, sodales volutpat massa. Proin non massa vitae nulla cursus molestie ut at diam. Vestibulum viverra elit vel tellus bibendum malesuada. Duis pellentesque dictum neque et venenatis. Mauris iaculis odio et odio interdum tempus. Duis eros erat, ultricies vitae placerat eu, iaculis quis enim. Maecenas sed viverra tortor. Maecenas tempus dolor eget cursus fringilla. Sed viverra euismod lectus at fringilla. Maecenas feugiat consequat laoreet. Duis id mauris at nisl elementum malesuada. Sed tempus nisl suscipit mauris vestibulum, sed dictum justo molestie. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse vitae neque sed sapien pharetra tincidunt. Nullam vel pulvinar turpis. Donec et tincidunt orci, eu ullamcorper purus. Integer eleifend justo et erat sagittis, quis ultrices dolor accumsan. Praesent gravida ac lorem et convallis. Fusce et eros ut nunc viverra sodales id vitae diam. Cras sapien odio, semper quis iaculis id, vehicula non odio. Maecenas euismod, leo vel tempor mollis, urna diam congue mi, et dictum sapien tellus nec nisi. Sed in iaculis sapien. Phasellus tempus vel mi sed facilisis. Sed fermentum porttitor sapien, a mollis dolor convallis ut. In nulla purus, tristique at diam sit amet, fermentum laoreet lacus. Morbi iaculis magna a adipiscing auctor. Quisque tincidunt tellus id enim laoreet, a euismod ipsum condimentum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse vel arcu nisl. Vivamus non bibendum sapien, sed sollicitudin orci. Maecenas rutrum nunc vel turpis ullamcorper eleifend. Integer in pretium nibh. Etiam lobortis tempus eros, a dictum felis varius rhoncus. Curabitur vehicula euismod metus, cursus feugiat mauris lacinia ac. Nulla scelerisque lacinia augue, ac consectetur enim viverra vel. Duis non sodales felis. Sed lacinia leo vel neque dictum accumsan. Mauris ac mauris semper, convallis eros eu, egestas erat. Praesent venenatis consectetur magna quis fringilla. Cras non arcu id turpis auctor feugiat. Nullam sodales suscipit enim eu sollicitudin. Pellentesque fermentum elit in neque commodo pretium. Aenean sollicitudin libero non elit aliquet, at egestas leo fermentum. Morbi tempor nulla quis mauris ornare feugiat. Suspendisse tincidunt risus velit, nec dignissim turpis vestibulum non. Ut laoreet consequat ante vel feugiat. Integer ultricies adipiscing gravida. Maecenas tempus aliquam dictum. Nunc porttitor massa lectus, a rutrum quam commodo sed. Nullam quis semper nunc. Duis nec sem rhoncus tellus venenatis fermentum in non mauris. Nunc facilisis vehicula tellus nec semper. Fusce eget porta sem, eu condimentum orci. Donec mattis dolor elit, id consectetur augue laoreet sed. Morbi accumsan est mi, sit amet scelerisque velit semper id. Cras consequat eu justo vel pretium. Aliquam et urna nunc. Nullam sit amet feugiat eros. Vestibulum molestie, enim id consectetur lacinia, massa libero adipiscing nulla, eu ultricies ligula tortor et diam. Nullam adipiscing pretium dapibus. Nulla at adipiscing elit. Aenean faucibus lacus non semper fermentum. Suspendisse ultrices ante quam, in molestie urna imperdiet ut. Nunc commodo ac eros eget hendrerit. Etiam suscipit mollis augue non tristique. Quisque feugiat volutpat lacus ut vehicula. Donec sed varius eros, condimentum posuere nisl. Pellentesque odio sapien, tincidunt elementum lectus nec, egestas mollis nulla. Nunc sagittis odio erat, at molestie orci viverra quis. Phasellus posuere, ipsum id vulputate condimentum, mauris tellus dapibus magna, ac fringilla lectus ipsum non leo. Etiam porttitor elit urna, ac elementum lacus ultricies eu. Praesent ante turpis, ornare interdum placerat et, posuere vel metus. Nulla cursus pellentesque laoreet. Morbi vel est eget orci facilisis condimentum non at velit. Mauris quis dolor et massa lobortis gravida a non erat. Cras ut ipsum vel est auctor consectetur vel lacinia risus. Phasellus id arcu elit. Ut tristique mattis enim, non rhoncus mi mollis non. Curabitur imperdiet tincidunt erat quis accumsan. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla cursus cursus nunc vel commodo. Integer ullamcorper faucibus purus, molestie bibendum ipsum interdum in. Maecenas eleifend sed massa vel vulputate. Etiam elementum eros lectus, a tristique elit condimentum non. In mattis interdum euismod. Praesent eleifend dictum elit et tempor. Phasellus scelerisque, dolor non bibendum dictum, purus tellus posuere justo, eu tincidunt urna velit non augue. Donec sit amet enim scelerisque, placerat nunc quis, facilisis sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. In id est viverra, fringilla est ac, sollicitudin massa. Quisque faucibus, turpis nec ullamcorper venenatis, lacus sem aliquam massa, elementum sollicitudin nisi sapien sit amet nisl. Quisque fermentum lacus neque. Nulla congue vitae orci at molestie. Ut laoreet placerat ipsum, in consequat augue lacinia vitae. Sed rhoncus est quam, vel luctus purus varius non. Vestibulum cursus nisl vitae purus venenatis, ac ullamcorper sem malesuada. Integer vitae neque eu nulla porta viverra non non nibh. Nullam placerat sit amet lectus dapibus cursus. Phasellus consequat condimentum fermentum. Integer at bibendum enim. Aliquam eget magna pharetra, congue sapien non, auctor tellus. Etiam enim odio, consequat ut enim sed, convallis porta libero. Pellentesque ultricies nulla at fringilla luctus. Vestibulum at risus ornare risus congue aliquet. Sed vitae aliquet est, et mollis risus. Aliquam gravida magna ut velit mattis, nec venenatis lacus aliquam. Etiam ultricies tortor at lorem vestibulum bibendum. Sed semper diam nec nulla viverra, a semper nisi hendrerit. Ut vulputate nisi sem, non pretium elit eleifend nec. Nam ullamcorper mauris nisi. Aenean porttitor pretium diam, eu porttitor erat bibendum quis. Vestibulum tincidunt nisi imperdiet viverra fermentum. Nunc nunc erat, accumsan in massa a, rutrum ullamcorper arcu. Cras convallis odio in tincidunt gravida. Nunc quis ligula quis est hendrerit luctus. Pellentesque eget nisi vel erat vestibulum ultricies eget nec orci. Nullam volutpat sapien id ipsum vulputate, et aliquet nulla sagittis. Proin nisl velit, tincidunt imperdiet lectus ut, dignissim cursus purus. Nam lacinia mauris odio, sit amet cursus arcu mattis quis. Donec non pharetra dui. Curabitur varius lobortis venenatis. Suspendisse adipiscing congue molestie. Suspendisse mattis mi mollis, accumsan odio in. EOT; $a = microtime(TRUE); mb_convert_encoding($s, 'UTF-8', 'UTF-8'); var_dump(microtime(TRUE) - $a); $b = microtime(TRUE); html_entity_decode(htmlspecialchars($s, ENT_NOQUOTES | ENT_IGNORE, 'UTF-8'), ENT_NOQUOTES, 'UTF-8'); var_dump(microtime(TRUE) - $b);
Output for 7.1.0
float(0.00038003921508789) float(0.00026202201843262)
Output for 7.0.14
float(0.00041007995605469) float(0.00034594535827637)
Output for 7.0.10
float(0.00034809112548828) float(0.00023794174194336)
Output for 7.0.9
float(0.0003199577331543) float(0.00028896331787109)
Output for 7.0.8
float(0.00030994415283203) float(0.00022101402282715)
Output for 7.0.7
float(0.00033092498779297) float(0.00024795532226562)
Output for 7.0.6
float(0.00027894973754883) float(0.00021600723266602)
Output for 7.0.5
float(0.00029492378234863) float(0.00021481513977051)
Output for 7.0.4
float(0.00032401084899902) float(0.00023293495178223)
Output for 7.0.3
float(0.00035810470581055) float(0.00026321411132812)
Output for 7.0.2
float(0.0003960132598877) float(0.00029802322387695)
Output for 7.0.1
float(0.00037789344787598) float(0.00028896331787109)
Output for 7.0.0
float(0.00029110908508301) float(0.00027799606323242)
Output for 5.6.28
float(0.00041508674621582) float(0.00034999847412109)
Output for 5.6.25
float(0.00036501884460449) float(0.00031280517578125)
Output for 5.6.24
float(0.00030016899108887) float(0.00026106834411621)
Output for 5.6.23
float(0.00034689903259277) float(0.0003049373626709)
Output for 5.6.22
float(0.00030517578125) float(0.00027084350585938)
Output for 5.6.21
float(0.00023913383483887) float(0.00029087066650391)
Output for 5.6.20
float(0.00031018257141113) float(0.00025177001953125)
Output for 5.6.0, 5.6.19
float(0.00036096572875977) float(0.0002899169921875)
Output for 5.6.18
float(0.00035905838012695) float(0.00031399726867676)
Output for 5.6.17
float(0.00037693977355957) float(0.00032305717468262)
Output for 5.6.16
float(0.0003969669342041) float(0.00031495094299316)
Output for 5.6.15
float(0.00028300285339355) float(0.00024294853210449)
Output for 5.6.14
float(0.0003049373626709) float(0.00028204917907715)
Output for 5.6.13
float(0.00031495094299316) float(0.00026607513427734)
Output for 5.6.12
float(0.00034809112548828) float(0.00033807754516602)
Output for 5.6.11
float(0.0003199577331543) float(0.00026512145996094)
Output for 5.6.10
float(0.00034713745117188) float(0.0003361701965332)
Output for 5.6.9
float(0.00034785270690918) float(0.0003058910369873)
Output for 5.6.8
float(0.00033116340637207) float(0.00026392936706543)
Output for 5.6.7
float(0.00034880638122559) float(0.00030708312988281)
Output for 5.6.6
float(0.00034713745117188) float(0.00031280517578125)
Output for 5.6.5
float(0.00037693977355957) float(0.0002899169921875)
Output for 5.6.4
float(0.00037813186645508) float(0.00032210350036621)
Output for 5.6.3
float(0.0003199577331543) float(0.00032305717468262)
Output for 5.6.2
float(0.00034713745117188) float(0.00029993057250977)
Output for 5.6.1
float(0.00033402442932129) float(0.00029802322387695)
Output for 5.5.38
float(0.00036907196044922) float(0.00034093856811523)
Output for 5.5.37
float(0.00030612945556641) float(0.00026106834411621)
Output for 5.5.36
float(0.00033187866210938) float(0.00028204917907715)
Output for 5.5.35
float(0.00029301643371582) float(0.00027608871459961)
Output for 5.5.34
float(0.00039887428283691) float(0.00033998489379883)
Output for 5.5.33
float(0.00031900405883789) float(0.00031495094299316)
Output for 5.5.32
float(0.00035190582275391) float(0.00034785270690918)
Output for 5.5.31
float(0.0003969669342041) float(0.00034308433532715)
Output for 5.5.30
float(0.00037598609924316) float(0.00032687187194824)
Output for 5.5.29
float(0.00035309791564941) float(0.00030207633972168)
Output for 5.5.28
float(0.00036001205444336) float(0.00029897689819336)
Output for 5.5.27
float(0.00039505958557129) float(0.00032711029052734)
Output for 5.5.26
float(0.00031399726867676) float(0.00032401084899902)
Output for 5.5.25
float(0.0004279613494873) float(0.0003349781036377)
Output for 5.5.24
float(0.00035309791564941) float(0.00031590461730957)
Output for 5.5.23
float(0.00034785270690918) float(0.00031304359436035)
Output for 5.5.22
float(0.00034809112548828) float(0.00027203559875488)
Output for 5.5.21
float(0.00033307075500488) float(0.00033998489379883)
Output for 5.5.20
float(0.00038385391235352) float(0.00034403800964355)
Output for 5.5.19
float(0.00036501884460449) float(0.00030303001403809)
Output for 5.5.18
float(0.00028300285339355) float(0.00025606155395508)
Output for 5.5.16
float(0.00034999847412109) float(0.0003199577331543)
Output for 5.5.15
float(0.00039386749267578) float(0.00032997131347656)
Output for 5.5.14
float(0.00034403800964355) float(0.00031208992004395)
Output for 5.5.13
float(0.00038814544677734) float(0.00035691261291504)
Output for 5.5.12
float(0.00027203559875488) float(0.00027012825012207)
Output for 5.5.11
float(0.00037717819213867) float(0.00033092498779297)
Output for 5.5.10
float(0.00033903121948242) float(0.0003960132598877)
Output for 5.5.9
float(0.00033402442932129) float(0.00030398368835449)
Output for 5.5.8
float(0.00041103363037109) float(0.0003359317779541)
Output for 5.5.7
float(0.00022196769714355) float(0.00021791458129883)
Output for 5.5.6
float(0.0003659725189209) float(0.00033283233642578)
Output for 5.5.5
float(0.00026798248291016) float(0.00026798248291016)
Output for 5.5.4
float(0.00041890144348145) float(0.00035500526428223)
Output for 5.5.3
float(0.00036406517028809) float(0.00032901763916016)
Output for 5.5.2
float(0.00033092498779297) float(0.00030303001403809)
Output for 5.5.1
float(0.00043392181396484) float(0.00047612190246582)
Output for 5.5.0
float(0.00021100044250488) float(0.00022697448730469)
Output for 5.4.45
float(0.00028014183044434) float(0.00029802322387695)
Output for 5.4.44
float(0.00029420852661133) float(0.00029110908508301)
Output for 5.4.43
float(0.00032591819763184) float(0.0003049373626709)
Output for 5.4.42
float(0.0003201961517334) float(0.00030207633972168)
Output for 5.4.41
float(0.00040102005004883) float(0.00040006637573242)
Output for 5.4.40
float(0.00041985511779785) float(0.00043296813964844)
Output for 5.4.39
float(0.00024199485778809) float(0.00028204917907715)
Output for 5.4.38
float(0.00040102005004883) float(0.0003960132598877)
Output for 5.4.37
float(0.0003821849822998) float(0.00033903121948242)
Output for 5.4.36
float(0.00038504600524902) float(0.00039505958557129)
Output for 5.4.35
float(0.00048303604125977) float(0.00038790702819824)
Output for 5.4.34
float(0.0003509521484375) float(0.00037980079650879)
Output for 5.4.32
float(0.00038003921508789) float(0.00032806396484375)
Output for 5.4.31
float(0.00034999847412109) float(0.00040197372436523)
Output for 5.4.30
float(0.00036406517028809) float(0.00033307075500488)
Output for 5.4.29
float(0.0003349781036377) float(0.0003509521484375)
Output for 5.4.28
float(0.00033307075500488) float(0.0003349781036377)
Output for 5.4.27
float(0.0003199577331543) float(0.00031495094299316)
Output for 5.4.26
float(0.00027203559875488) float(0.00026297569274902)
Output for 5.4.25
float(0.0003821849822998) float(0.00037503242492676)
Output for 5.4.24
float(0.00029897689819336) float(0.0003349781036377)
Output for 5.4.23
float(0.00031805038452148) float(0.00031399726867676)
Output for 5.4.22
float(0.00033402442932129) float(0.00045299530029297)
Output for 5.4.21
float(0.0003352165222168) float(0.00035190582275391)
Output for 5.4.20
float(0.00025200843811035) float(0.00024199485778809)
Output for 5.4.19
float(0.00029110908508301) float(0.0003509521484375)
Output for 5.4.18
float(0.00028300285339355) float(0.00029706954956055)
Output for 5.4.17
float(0.00027704238891602) float(0.00032806396484375)
Output for 5.4.16
float(0.0003361701965332) float(0.00043201446533203)
Output for 5.4.15
float(0.00027704238891602) float(0.00029993057250977)
Output for 5.4.14
float(0.00023388862609863) float(0.00018596649169922)
Output for 5.4.13
float(0.00028896331787109) float(0.00026106834411621)
Output for 5.4.12
float(0.00025081634521484) float(0.00020003318786621)
Output for 5.4.11
float(0.00029110908508301) float(0.00035405158996582)
Output for 5.4.10
float(0.00031900405883789) float(0.00040888786315918)
Output for 5.4.9
float(0.0003359317779541) float(0.00044584274291992)
Output for 5.4.8
float(0.00033998489379883) float(0.00034689903259277)
Output for 5.4.7
float(0.00026988983154297) float(0.00026988983154297)
Output for 5.4.6
float(0.00031614303588867) float(0.00035691261291504)
Output for 5.4.5
float(0.00027799606323242) float(0.0002899169921875)
Output for 5.4.4
float(0.00025701522827148) float(0.00027298927307129)
Output for 5.4.3
float(0.00035500526428223) float(0.00038003921508789)
Output for 5.4.2
float(0.0003352165222168) float(0.00039982795715332)
Output for 5.4.1
float(0.00027680397033691) float(0.00033998489379883)
Output for 5.4.0
float(0.00053501129150391) float(0.00040102005004883)
Output for 5.3.29
float(0.00028491020202637) float(0.00069499015808105)
Output for 5.3.28
float(0.0002589225769043) float(0.00053691864013672)
Output for 5.3.27
float(0.00020408630371094) float(0.00042891502380371)
Output for 5.3.26
float(0.00034904479980469) float(0.00081801414489746)
Output for 5.3.25
float(0.00030088424682617) float(0.00066304206848145)
Output for 5.3.24
float(0.00034713745117188) float(0.00075888633728027)
Output for 5.3.23
float(0.00031900405883789) float(0.00069689750671387)
Output for 5.3.22
float(0.00025582313537598) float(0.00056195259094238)
Output for 5.3.21
float(0.00022315979003906) float(0.00051784515380859)
Output for 5.3.20
float(0.00031900405883789) float(0.00074505805969238)
Output for 5.3.19
float(0.00033092498779297) float(0.0007779598236084)
Output for 5.3.18
float(0.00030183792114258) float(0.00067281723022461)
Output for 5.3.17
float(0.0002288818359375) float(0.00054001808166504)
Output for 5.3.16
float(0.00024104118347168) float(0.00057411193847656)
Output for 5.3.15
float(0.00027894973754883) float(0.00063395500183105)
Output for 5.3.14
float(0.00025796890258789) float(0.00058293342590332)
Output for 5.3.13
float(0.00027704238891602) float(0.00060796737670898)
Output for 5.3.12
float(0.00033307075500488) float(0.00075793266296387)
Output for 5.3.11
float(0.00025486946105957) float(0.00060296058654785)
Output for 5.3.10
float(0.00026798248291016) float(0.00065898895263672)
Output for 5.3.9
float(0.00034499168395996) float(0.00076389312744141)
Output for 5.3.8
float(0.0003659725189209) float(0.00077199935913086)
Output for 5.3.7
float(0.00035881996154785) float(0.00072813034057617)
Output for 5.3.6
float(0.0003058910369873) float(0.00068879127502441)
Output for 5.3.5
float(0.0003209114074707) float(0.00066900253295898)
Output for 5.3.4
float(0.00033402442932129) float(0.0007321834564209)
Output for 5.3.3
float(0.00026893615722656) float(0.00058889389038086)
Output for 5.3.2
float(0.00036501884460449) float(0.00075101852416992)
Output for 5.3.1
float(0.00030303001403809) float(0.00078010559082031)
Output for 5.3.0
float(0.00033283233642578) float(0.00087594985961914)