GVKun编程网logo

如何使用PHP获取SVG标记内容(如何使用php获取svg标记内容)

17

对于想了解如何使用PHP获取SVG标记内容的读者,本文将提供新的信息,我们将详细介绍如何使用php获取svg标记内容,并且为您提供关于PHP-如何从旋转/缩放获取SVG变换矩阵值、php-如何用PHP

对于想了解如何使用PHP获取SVG标记内容的读者,本文将提供新的信息,我们将详细介绍如何使用php获取svg标记内容,并且为您提供关于PHP-如何从旋转/缩放获取SVG变换矩阵值、php-如何用PHP获取SWF和gif动画的缩略图?、使用PHP获取Facebook元标记、在HTML标记内使用PHP变量?的有价值信息。

本文目录一览:

如何使用PHP获取SVG标记内容(如何使用php获取svg标记内容)

如何使用PHP获取SVG标记内容(如何使用php获取svg标记内容)

我想用PHP获取SVG标记内容.

test.svg:

<?xml version="1.0" encoding="utf-8"?>
<!-- comment  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 width="202.5px" height="226.084px" viewBox="0 0 202.5 226.084" enable-background="new 0 0 202.5 226.084" xml:space="preserve">
   <g>
        <path d="M0,13.628c47.7940,13.628z"/>
        <polygon points="108.48,207.874 145.506,196.948 145.506,204.536 108.48,214.854  "/>
        <path fill="none" stroke="#000000" d="M114.55,223.959"/>
   </g>
   <g>       
        <path fill="none" stroke="#000000" d="M114.55,223.959"/>
   </g>
   <anythingElse>       
        <path fill="none" stroke="#000000" d="M114.55,223.959"/>
   <anythingElse>       
</svg>

PHP:

$svg = new SimpleXMLElement( file_get_contents( 'test.svg' )  );

$svg->registerXPathNamespace('svg', 'http://www.w3.org/2000/svg');
$svg->registerXPathNamespace('xlink', 'http://www.w3.org/1999/xlink');

现在,我想将svg标记内容作为字符串.

期望的结果(硬编码示例):

$content =  '<g>
    <path d="M0,13.628c47.7940,13.628z"/>
    <polygon points="108.48,207.874 145.506,196.948 145.506,204.536 108.48,214.854  "/>
    <path fill="none" stroke="#000000" d="M114.55,223.959"/>
</g>
   <g>       
        <path fill="none" stroke="#000000" d="M114.55,223.959"/>
   </g>
   <anythingElse>       
        <path fill="none" stroke="#000000" d="M114.55,223.959"/>
   <anythingElse> ';

//编辑:

我不想寻找g标签:’/ svg:svg / svg:g’.
由于无法保证svg内部会有g标签.可能有超过一个g标签或一些其他标签.

我想获得开始和结束svg标签之间的所有内容.

解决方法:

您已经看到了正确的(更可能是:从a previous answer中提供给您的示例代码中进行复制和粘贴,无需进一步了解)您需要在此处为​​xpath注册XML命名空间,因为它没有前缀在XML中:

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 width="202.5px" height="226.084px" viewBox="0 0 202.5 226.084" enable-background="new 0 0 202.5 226.084" xml:space="preserve">

它只是URI http://www.w3.org/2000/svg,没有给出前缀.它是< svg>的名称空间.根元素.

因此,您需要注册前缀(另一个已经有前缀的命名空间应该已经自动注册):

$svg->registerXPathNamespace('svg', 'http://www.w3.org/2000/svg');

你到目前为止做了什么.

要在xpath查询中使用您的注册前缀,请在其前面添加标记名:

/svg:svg/svg:g[1]

应该给你第一个< g>该SVG命名空间中的元素.如果仍需要进一步解释/澄清,请告诉我.

见online demo.

这也是上一个问题的原因:

> Loop through SVG elements with PHP

PHP-如何从旋转/缩放获取SVG变换矩阵值

PHP-如何从旋转/缩放获取SVG变换矩阵值

本质上,我正在寻找一个PHP函数或方程式,该函数或方程式将输出SVG转换中使用的Matrix值.

我高低寻觅,可惜什么也没发现.

我很清楚Rotate()和scale函数(),但是这些并不是我所需要的.

我需要能够以度为单位旋转角度以及x / y比例数据,并以SVG转换格式矩阵(a,b,c,d,e,f)输出一系列值

理想情况下,我想在PHP中执行此操作,但是如上所述,标准数学方程式也将有所帮助.

希望有人可以指出正确的方向.

解决方法:

您可以通过将单个转换的矩阵相乘来计算值.看一下SVG specification来找到它们的定义:

rot(a)       := matrix(cos(a), sin(a), -sin(a), cos(a), 0, 0)
scale(sx,sy) := matrix(sx, 0, 0, sy, 0, 0)

根据应应用转换的顺序(缩放之前的旋转与旋转之前的缩放),您将获得不同的矩阵:

rot(a)*scale(sx,sy) = matrix(sx*cos(a), sx*sin(a), -sy*sin(a), sy*cos(a), 0, 0)
scale(sx,sy)*rot(a) = matrix(sx*cos(a), sy*sin(a), -sx*sin(a), sy*cos(a), 0, 0)

php-如何用PHP获取SWF和gif动画的缩略图?

php-如何用PHP获取SWF和gif动画的缩略图?

php

用php上传动画.gif或.swf文件,上传后再从动画中提取一帧作为这个视频文件的缩略图,用于在网页中显示

使用PHP获取Facebook元标记

使用PHP获取Facebook元标记

我正在尝试从HTML中获取Facebook的元标记。

我正在使用简单的html dom从站点获取所有html数据。我已经尝试过preg_replace,但是没有运气。

例如,我想要获取此fb元标记的内容:

<meta content="IMAGE URL" property="og:image" />

希望有人能帮忙!:-)

答案1

小编典典

我将建议使用get_meta_tags(),但似乎不起作用(对我而言):s

<?php$tags = get_meta_tags(''http://www.example.com/'');echo $tags[''og:image''];?>

但是我还是建议还是使用DOMDocument:

<?php$sites_html = file_get_contents(''http://example.com'');$html = new DOMDocument();@$html->loadHTML($sites_html);$meta_og_img = null;//Get all meta tags and loop through them.foreach($html->getElementsByTagName(''meta'') as $meta) {    //If the property attribute of the meta tag is og:image    if($meta->getAttribute(''property'')==''og:image''){         //Assign the value from content attribute to $meta_og_img        $meta_og_img = $meta->getAttribute(''content'');    }}echo $meta_og_img;?>

希望能帮助到你

在HTML标记内使用PHP变量?

在HTML标记内使用PHP变量?

我对php还是很陌生,但是我在这个问题上陷入了困境。。。说我等着用给定的参数链接到另一个站点,我该如何正确处理?

这就是我现在所拥有的:

<html>
<body>
<?php
  $param = "test";

  echo "<a href="http://www.whatever.com/$param">Click Here</a>;
?>

</body>
</html>

关于如何使用PHP获取SVG标记内容如何使用php获取svg标记内容的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于PHP-如何从旋转/缩放获取SVG变换矩阵值、php-如何用PHP获取SWF和gif动画的缩略图?、使用PHP获取Facebook元标记、在HTML标记内使用PHP变量?等相关内容,可以在本站寻找。

本文标签: