PHP μετατροπη κωδικα ωστε να μην ενοχλει τα HTML Tags

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
mimoupeis
Δημοσιεύσεις: 4
Εγγραφή: 10 Μάιος 2016 15:33

PHP μετατροπη κωδικα ωστε να μην ενοχλει τα HTML Tags

Δημοσίευση από mimoupeis » 26 Μαρ 2018 22:22

Γεια σας παιδα, εχω αυτον τον κωδικα για τις ετικετες σε λινκς στο περιεχομενο στο Wordpress αλλα μου επεμβαινει ακομα και σε σταυπαρχων html tags.
Πχ. σε img στο alt="bla blu" βρισκει την λεξη bla και εισχωρει τον κωδικα των λινκς με αποτελεσμα να σπαει ο κωδικας του img πχ <img src="1.jpg" alt="<a href="link">bla</a> bul />

Και ετσι φαινεται ασχημα στο ποστ περισσευομενος κωδικας html απο το τμημα της img

Κώδικας: Επιλογή όλων

function link_words( $text ) {
  $replace = array();
  $tags = get_tags();

  if ( $tags ) {
    foreach ( $tags as $tag ) {
        $replace[ $tag->name ] = sprintf( '<a href="%s">%s</a>', esc_url( get_term_link( $tag ) ), esc_html( $tag->name ) );
    }
  }

  $text = str_replace( array_keys($replace), $replace, $text );
  return $text;
}
add_filter( 'the_content', 'link_words' );
Κάποια βοηθεια πλιζ?

Ευχαριστω.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6237
Εγγραφή: 30 Νοέμ 2004 03:09

Re: PHP μετατροπη κωδικα ωστε να μην ενοχλει τα HTML Tags

Δημοσίευση από fafos » 27 Μαρ 2018 12:33

"paixe" me thn preg_replace:

Κώδικας: Επιλογή όλων

$replace[ $tag->name ] = preg_replace('/(?<![\p{L}0-9_])(?=[^<>]*(?:<|\Z))'.$tag->name.'(?![\p{L}0-9_])/u','<a href="'.$tag.'">'.$tag->name.'</a>',$text);
H proth synthiki ('/(?<![\p{L}0-9_])(?=[^<>]*(?:<|\Z))') tou leei na mhn peiraxei tags opos ta <a>, <img> klp eno h 2h synthiki aplos leei pou prepei na stamathsei to tag pou den lamvanei ypopsin gia antikatastash.
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...


Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 3 επισκέπτες