2010-03-11 7 views
2

Sur cette page ...PHP: Mise à jour de statut Twitter tout en conservant des caractères spéciaux intacts

http://www.axisofeco.com/matters/2010/03/11/the-word-youre-looking-for-is-sublime/

... J'ai « Twitter cette » lien qui colle dans le titre de l'article et un lien dans votre Boîte de mise à jour Twitter (si vous êtes connecté à Twitter)

Problème, quand des articles comme celui-dessus contiennent des caractères spéciaux (des guillemets simples ou doubles), Twitter ne semble pas les gérer. C'est ce que Twitter essaie (et ne horriblement) pour coller dans la zone de mise à jour Twitter:

8217; re + recherche + pour + est + “ sublime ” + http://is.gd/acIW2

(si les guillemets sont effectivement à la recherche ok dans ce qui précède ligne, croyez-moi, ils restent quand encodées Twitter essaie de les traiter)

le PHP pertinent pour le formatage de la mise à jour Twitter est ce:

$url = str_replace(' ', '+', $url); 
echo htmlentities($url, ENT_COMPAT, 'UTF-8'); 

J'ai essayé d'utiliser différentes f par exemple, en utilisant urlencode(), mais rien ne semble encoder la chaîne ($ url) d'une manière "conviviale sur Twitter".

Répondre

1

Un urlencode() simple, a fonctionné pour moi:

Tweet This

//make sure you only urlencode the get var 
echo urlencode("The word you’re looking for is “sublime”"); 
//ran the above on php and used the result in the link 

Cependant, je venais de remplacer 'jolie' cite avec guillemets normales avant de former l'URL. Selon le navigateur/l'emplacement, le tweet résultant peut ne pas sembler correct aux autres utilisateurs.

+0

C'est étrange. Quand j'exécute le code exact ci-dessus, j'obtiens - Le + mot + vous% 92re + regardant + pour + est +% 93sublime% 94 - comme sortie. Je reçois ceci sur le serveur axisofeco.com et sur mon serveur local. – Jack

+0

Peut-être que le problème est que le serveur/PHP ne comprend pas le caractère Unicode pour commencer. Bien que cela fonctionne sur mon serveur, je ne l'utiliserais pas en production. –

Questions connexes