2010-02-12 6 views
0

J'ai un éditeur de texte sur ma page Web, sur cet éditeur de texte je mets l'image et que j'utilise cette image dans différentes parties de mon site, mais à différents endroits la taille de l'image diffère.PHP Grab Image de code html - simple

L'image dans la base de données est stockée cette façon: <div><img width="210" height="150" alt="" src="/portali/userfiles/image/Kategorite/Teknologji/-1.jpg" /></div>

Maintenant, dans une partie de mon site web que je veux utiliser cette même image avec une taille différente et pour cette raison j'ai besoin de script php pour saisir uniquement le chemin de l'image, dans cet exemple (/portali/userfiles/image/Kategorite/Teknologji/-1.jpg).

Un corps peut-il écrire ici un script de base pour ce faire en ayant à l'esprit que le code html entier de l'image est dans une seule variable.

+0

je sais que l'approche est mauvaise, mais j'utilise l'éditeur de texte parce que c'était le moyen le meilleur et le plus facile de télécharger et d'utiliser les images téléchargées du serveur – AXheladini

Répondre

1
$html = '<?xml version="1.0" encoding="UTF-8"?>'.$yourHTMLFromDb; 
$elements = new SimpleXmlElement($html); 
$url = $elements->img->attributes()->src; 

Maintenant je suis sûr que je ne serai pas le premier à le dire, mais ... "Youre Do It wrong". Vous ne devez stocker que le chemin d'accès à l'image dans la base de données (et peut-être d'autres attributions) et non un fragment html.

+0

je reçois cette erreur de votre code: Attention: SimpleXMLElement :: __ construct() [simplexmlelement .-- construct]: Entité: ligne 1: erreur de l'analyseur: Entité 'euml' non définie dans/home6/feksinte/public_html/portali/index.php sur la ligne 189 – AXheladini

+0

Désolé codage devrait être '' "UTF-8" 'mis à jour mon poste .. Cependant l'échantillon html que vous avez montré montre seulement une image dans une div d'où vient cette entité si cela entité n'est pas dans le src pour l'image, alors vous devez avoir d'autres balises dans ce que vous n'avez pas inclus ce qui peut changer la façon dont vous atteindre l'élément dans le dom. le code que j'ai posté ne fonctionnera que pour la structure que vous avez fournie dans votre échantillon. – prodigitalson

+0

à nouveau la même erreur. J'ai et le panneau d'administration où j'insère des données et pour cette raison j'utilise un éditeur de texte riche prêt à l'emploi (basé sur le script Java). Et quand je télécharge une image en utilisant cet éditeur de texte, il stocke cette image exactement comme je vous l'ai montré là-haut. Je ne sais pas ce que je fais mal mais j'ai toujours le même problème – AXheladini

2

Je pense que votre approche générale peut être erronée selon ce que vous faites. Au lieu de stocker la chaîne d'image dans votre base de données, il suffit de stocker le nom du fichier et éventuellement un chemin. Ensuite, dans votre code HTML, créez la chaîne manuellement:

<img src='<?= $row['path'] . '/' . $row['image'] ?>' width='XXX' height='XXX'/> 

De cette façon, vous pouvez ajouter autant de paramètres différents que vous le souhaitez. Aussi, pour le rendre aussi efficace que possible, ne redimensionnez pas vos images en utilisant des étiquettes de style ou une largeur/hauteur en ligne, mais utilisez plutôt quelque chose comme PHP GD ou ImageMagick pour faire des miniatures dans les tailles que vous voulez afficher. À long terme, cela vous épargnera beaucoup de maux de tête et de bande passante.

+0

Je sais que c'est la meilleure approche mais ma situation est décrite sur ma question , merci pour votre effort – AXheladini