yaml_parse - изчистване на грешни символи..

vasilev

Registered
здравейте,
има ли начин да се изчистят 0000 символи и други без да се промени съдържанието на yaml текст - като пример:

YAML:
application: "test"
names:
- name: "TEST1"
  descripton: "this is info"
  value: 3
- name: "TEST2"
  descripton: "this is info"
  value: "6"
- name: "TEST3"
  descripton: "this is info"
  value: 10

може да се провери на - https://www.yamllint.com/
изкарва грешка:

A block sequence may not be used as an implicit map key at line 6, column 1
Implicit keys need to be on a single line at line 6, column 1
Implicit map keys need to be followed by map values at line 6, column 1

ако го изтрия и заместя с интервал - е ок.
опитах : https://stackoverflow.com/questions...-from-string-and-replace-with-one-empty-space

но без резултат
 
.. да , като го постнах тук и го копирах е ок :)
През visual code ако се копира пак е ок, не беше ок ако се пише в tinymce например, то слага някакви стрингове и ако се подаде с пост заявка след това чупи yaml..
 
през вим се вижда добре - е за това празно място говоря преди интервала на 4, 5 ред ..


1715271537617.png
 
.. да , като го постнах тук и го копирах е ок :)
През visual code ако се копира пак е ок, не беше ок ако се пише в tinymce например, то слага някакви стрингове и ако се подаде с пост заявка след това чупи yaml..
А защо го постваш през tinymce? Библиотеката най-вероятно прави автоматичен формат и тези тирета ги смята за списък, но не знае, че това трябва да е yaml. Виж за raw опция или махни библиотеката за такива неща.
 
идеята е да се застраховам срещу такива символи - ако може де.
ще се поства през друг едитор който не прави формат и е ок..
но ако случайно нещо стане и някой копира от някъде yaml който е невалиден..
знаем как е с юзърите :)
 
Ако искаш застраховка ще трябва или да добавиш форматър за yaml или валидатор и трябва да се поства в изчистен вид. Не бих използвал какъвто и да е едитор за такива неща, защото се използват различни правила за форматиране. Това е като да пишеш уеб сайтове на Word - ще е добре, докато някой случаен скрит символ не се появи да провали нещата.
 
PHP:
composer require symfony/yaml
PHP:
<?php
require 'vendor/autoload.php';

use Symfony\Component\Yaml\Yaml;
use Symfony\Component\Yaml\Exception\ParseException;

try {
    $parsed = Yaml::parse({YAML INPUT});
    echo "YAML is valid!";
} catch (ParseException $e) {
    echo "Error parsing YAML: ", $e->getMessage();
}
?>

за да валидираш, друг сигурен начин няма.
 

Back
Горе