仅返回没有 html 标签的 php 数据

我正在尝试从shields.io创建一个自定义盾牌。我尝试了创建端点的路线,json但由于可访问性问题,这对我不起作用。md我想出了一个解决方法,从我的 php 端调用shields.io 链接,然后将其返回到一个端点,然后反过来从我的标签中的自述文件中调用该端点<img>

如果我在浏览器中输入网址,它会正常工作并且我会看到盾牌。如果我尝试在自述文件的标签中使用该网址,<img>它将不起作用。我意识到这是因为我<html>从 php.ini 返回了额外的元素。这是我的代码:

php:

$router->get('/badge', function (AssetsManifestGateway $assetsManifestGateway) {

  $appVersion = $assetsManifestGateway->getAppVersion();


  $shield = file_get_contents("https://img.shields.io/static/v1?label=". config('app.partner_code'). "_". config('app.env'). "&message=". $appVersion);

  return $shield; 

});

自述文件:


<img src="http://<my url>/badge">

在我的浏览器中访问 url 时的响应:


<html>

 <head>

 </head>

 <body>

  <svg xmlns="http://www.w3.org/2000/svg">

   <extra content>

  </svg>

 </body>

</html>

所以我基本上只想返回<svg>该响应的一部分。这可能吗?


繁花如伊
浏览 91回答 1
1回答

慕仙森

你的问题通过从shields.io()获取徽章file_get_contents并返回svg徽章,您实际上使服务器相信您返回的是html(请参阅标签<svg></svg>)。我尝试了创建端点的路线,json但由于可访问性问题,这对我不起作用。不久前我也遇到过类似的问题。我通过使用 php 创建一个shields端点解决了这个问题。这样,您可以使用 php 创建 JSON,并让shields 服务器从中创建徽章 - 而不是从shields.io 获取和返回徽章(您所做的)。代码回答你的问题我总是使用这个函数来创建我的徽章,因为抽象在这里似乎非常有用:function createBadgeJson($label, $message, $color="green") {&nbsp; return "{\"schemaVersion\": 1,\"label\": \"$label\",\"message\": \"$message\",\"color\": \"$color\"}";}要创建您在上面尝试创建的徽章,请将其放入您的 php 文件中:$appVersion = $assetsManifestGateway->getAppVersion();echo createBadgeJson(config('app.partner_code'), $appVersion);您可以在 Markdown 中使用徽章,如下所示:![your badge](https://img.shields.io/endpoint?url=https://your-endpoint-domain.com/your-badge-path)或者在 HTML 中使用上面的链接格式作为图像源。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5