J'ouvre un fichier sur le serveur avec PHP. Le fichier semble ordinaire. Il ouvre dans Notepad et Textedit sur un PC. Même PHP peut l'afficher sans aucun problème dans un navigateur Web lorsque nous faisons écho. Mais quand j'essaie de le chercher avec strpos(), il ne trouve rien d'autre que des caractères uniques. Si je recherche une chaîne avec 2 caractères ou plus, elle ne trouve rien.Ouverture d'un fichier encodé avec PHP
J'ai essayé de l'encoder en UTF-8, et il le détecte comme ASCII. donc tout semble juste là.
J'ai également isolé la partie du fichier que j'essaye de lire à seulement 250 caractères. Ils ont tous l'air bien sur l'écran.
Mais strpos ne peut pas le trouver. J'ai effectué des tests sur chaque partie de mon code et je crois que tout va bien avec mon code. Le problème que je crois découle de ce que les caractères que je vois sur l'écran ne correspondent pas exactement à ce que ces caractères sont vraiment. Mon dernier recours consiste à écrire une fonction qui convertit chaque caractère en un tableau d'entiers (si c'est même possible), puis de convertir tout cela en une chaîne. De cette façon, nous saurons à 100% que les personnages que nous voyons sont réels.
Espérant que quelqu'un a une meilleure approche ou peut-être une idée de quelque chose que j'ai raté?
Je posterai le code ci-dessous:
$content = file_get_contents($file->getPathname()); // get the file contents
$content = substr($content, 30, 300); // reduce the large file to just the first few lines
$content = htmlspecialchars($content); // try to remove any special characters from the file
$content = iconv('ASCII', 'UTF-8//IGNORE', $content); // encode to a friendly format
$string = "JobName"; // this is the string i'm searching for
if (strpos($content, $string) !== false) {
echo "bingo";
}
else {
echo " not found ";
}
Pour être clair, le fichier que je suis ouverture est généré à partir d'un programme PC qui stocke ses données au format .DAT. Comme je l'ai dit, je peux voir et lire le contenu très facilement en utilisant n'importe quel programme, y compris PHP. mais quand j'essaie de chercher, c'est comme si elle ne reconnaissait pas le contenu du tout.
Je ne sais pas comment télécharger un fichier sur StackOverflow, mais si quelqu'un peut me dire comment le faire, je publierai volontiers le fichier lui-même.
Il suffit d'utiliser un "hexeditor" pour examiner ce fichier, vérifiez quels caractères sont réellement utilisés. – arkascha
Veuillez ne pas ajouter de détails dans les commentaires. Il y a un lien 'edit' pour le dessous de votre question. _Utilise le_. – arkascha
Pouvez-vous fournir ce fichier? –